1、 新建Express项目
npm init
npm install express --save
2、 使用Express应用生成器快速创建
npm install express-generator -g
安装
express -myapp
生成myapp项目
npm install
安装依赖
3、 运行项目
DEBUG=myapp npm start
4、 托管静态文件
1 | app.use('/static',express.static('public')); //'第一个参数可选' |
5、 基本路由
- 用法:
1 | app.METHOD(path, [callback...], callback) |
1 | app.get('/',function(req,res){ |
- 路径可以采用 字符串模式 或 正则表达式 ,如:
1 | app.get('/ab(cd)?e', function(req, res) { |
1 | app.get(/.*fly$/, function(req, res) { |
- 路由句柄:多种处理路由的方式:多个回调函数、回调函数数组
1 | var cb0 = function (req, res, next) { |
6、路由响应
1 | res.download() //提示下载文件。 |
7、链式路由句柄 app.router
1 | app.route('/book') |
8、模块化路由句柄 express.Router
1 | var express = require('express'); |
1 | var birds = require('./birds'); |
9、中间件
- 分类:应用中间件,路由中间件,错误处理中间件,内置中间件,第三方中间件
应用级中间件:
app.use()
、app.METHOD
1
2
3
4
5
6
7
8var app=express();
app.use(function(req,res,next)){ //无挂载路径,app的每个请求都会执行
console,log('Time',Date.now);
next();
}
app.get('/user/:id',function(req,res,next){ //处理 /user/:id 的GET请求
res.send('USER');
})路由级中间件
router.use()
、route.METHOD
1
2
3
4
5
6
7
8
9
10var app=express();
var Router=express.Router();
router.use(function (req, res, next) {
console.log('Time:', Date.now());
next();
});
router.get('/user/:id', function (req, res, next) {
console.log(req.params.id);
res.render('special');
});错误处理中间件
1
2
3
4app.use(function(err, req, res, next) {
console.error(err.stack);
res.status(500).send('Something broke!');
});内置中间件
express.static(root,[options])
,负责托管静态资源第三方中间件
1
$ npm install cookie-parser
1 | var express = require('express'); |
10、模版引擎 Jade
1 | /*index.jade*/ |
1 | app.get('/', function (req, res) { |