express工程的优化和请求参数的处理
1、让工程自动刷新
在Express的默认工程中,ejs, jade等模板的改变会立刻被渲染到浏览器中,但是js的改变不能立即刷新。这时候我们要用到一些自动刷新工具,
如 nodemon, supervisor等
我用的是nodemon,
我用了nodemon,因为我是用 express-generator 生成的Express工程, 所以这样配置
1.1
安装 nodemon依赖
npm install nodemon
1.2修改配置
在package.json的配置文件中修改工程启动方法:
修改前
"scripts": { "start": "node ./bin/www" },
修改后
"scripts": { "start": "node ./bin/www", "auto": "nodemon ./bin/www" },
然后用新命令重新启动工程
修改前
npm start
修改后
npm run auto
有的同学说需要 把 exports.moduls = app 注释掉。我发现没注释也没关系
2、路由模块拆分
Express-generator已经帮我们做了很好的示范
假如我们有一个新的路由模块 api
我们这样做:
2.1 在routes目录下,新建一个路由文件 api.js
里面这样写:
var express = require('express'); var router = express.Router(); // var bodyParser = require('body-parser'); 新版本废弃 /* GET home page. */ router.get('/', function(req, res, next) { // res.render('index', { title: 'Express' }); var msg = "connect to api success!"; res.send(msg); }); router.get('/login/:username/:password',function (req, res, next) { var jss = { "username" : req.params.username, "password" : req.params.password }; console.log(jss); res.send(jss); }); module.exports = router;
再在app.js里面做引用
var indexRouter = require('./routes/index'); var usersRouter = require('./routes/users'); var api = require('./routes/api');//新增 app.use('/', indexRouter); app.use('/users', usersRouter); app.use('/api', api);//新增