全栈式框架的选择:MEAN or MEANS?

这两个月一直在进行sails后端开发,其中遇到的问题不断。放在研究用户访问控制矸例程上的时间太多,最后也没用弄出什么东西来。遂推荐降一级使用Express框架,在进行数据库的开发后,我们也等于正式使用上了MEAN这一套全栈式框架。而MEANS就是多加了一个Sails框架。


  1. 两个是什么

    alt

    MEAN分别是MongoDB、Express、AngularJS、Node.js。它是一套全栈式框架,MongoDB充当数据库,Express充当server后端框架,AngularJS充当client前端框架,而Node.js作为Web矸服务器平台。简单明了的分工。

    alt

    而MEANS就是多加了一个Sails框架,而Sails也是可以直接使用Express的部分API的。

  2. 代替的原因
    在github能找到的几个sails用户控制访问例程不是自带bug就是过于复杂,维护的人数也很少,对于火候不到的我而言,实在是难啃的骨头。而Epress关于这方面的例程不仅数量上管够,高质量的例程也是比较多的。再者,Sails本身的社区活跃程度也没用有xpress高,其API也是封装过一遍的robust thing(虽然健壮不过不太好个性化使用)。其高复用性的数据库交互我们项目也不是很需要。综上原因,更低等化的Express或许更适合我来开发和学习。

  3. Dtree新结构(着重后端)

        ├── app                     -- server-side
    │   ├── controllers        -- auth controller uses passport middleware
    │   ├── models             -- user model define user schema
    │   └── routes.js          -- server-side routes
    │
    │
    ├── public                    -- client-side for AngularJS
    │
    │
    ├── config                    -- Express Configuration
    │   └── middlewares        -- self middlewares include fun requiresSignin
    │
    │
    └── node_modules
    
  4. Passport
    项目采用的Node的用户验证中间件,可以实现用户注册登录以及Oauth的功能,十分容易上手,API也十分简洁。但是我还是很在意其更深度的开发是否会受到限制。