3. Express.js 框架

Express是个精炼的框架,但是充满的所有的可能性。

A. 结构
B. 路由
C. 中间件
D. 静态文件

结构

> project name
  >bin
    >www//程序入口
  >middleware
  >node_modules
  >routers
  >views
  >app.js //路由配置,中间件配置
  >package.json//modules配置文件
  >public.zip
  >routes.zip

同类文件多放在一个文件夹里,是个不会错的好习惯。

路由

router提供了put,delete,get,post等函数。
router/userRouter.js

var express = require('express');
var router = express.Router();
router.put('/',function(req,res){
  req.session//获取session
  req.body//获取body
  //建议console.log(req)一下,就知道里面都有什么了,对应怎么取
  //Multipart 需要配置好上篇文章里提到的 multiparty 库,
  //...
  var _jsonObject={};
  res.status(statusCode).send(_jsonObject);
})

最后结尾

module.exports=router;

在app.js里

var userRouter=require('./routers/userRouter');
app.use('/user',userRouter);

完成路由配置。

中间件

这就是自带的一个小型中间件,利用next

app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

小坑,记得解析cookies等中间件需要放在router前面,这样router来路由的时候才能正确取得cookies等数据。

静态文件

app.use(express.static(path.join(__dirname, 'public')));

其他

理解Express的框架以上就可以有个基础的概念了,Node的优势在此,劣势亦是如此,随意性很大。如何写出简介、模块化的JS,才是Node最难的部分。
将数据库读取封装成DAO,把业务逻辑封装成Service,最后路由引用Service,是我的一个做法。
多用编程模式,例如权限的判断,可以写一个小模块,使用工厂模式(可以加入,可以修改,可以退出等)。
等以后经验更足了,会开一篇文章来分享一下我对于美丽的代码的想想。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容