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,是我的一个做法。
多用编程模式,例如权限的判断,可以写一个小模块,使用工厂模式(可以加入,可以修改,可以退出等)。
等以后经验更足了,会开一篇文章来分享一下我对于美丽的代码的想想。

你可能感兴趣的:(3. Express.js 框架)