Express 框架中常用的一些中间件的使用方法
basiAuth 访问控制
var express = require('express');
var app = express();
app.use(express.basicAuth('username', 'password'));
app.get('/', function (req, res) {
res. send('成功登录后才会看到这段内容。');
});
app.listen(1234, 'localhost');
bodyParse 处理请求 body 的内容
// 内部使用 JSON 编码、url 编码处理和文件的上传处理
// 处理一个上传文件
<body>
<h1>使用 express.bodyParser 中间件上传文件</h1>
<form id="myForm" action="upload.html" method="post" enctype="multipart/form-data">
<input type="file" id="file" name="file">
<input type="submit" onclick="uploadFile()" value="上传">
</form>
<div id="result">
选择文件后,点击按钮上传.
</div>
</body>
var express = require('express');
var connect = require('connect');
var fs = require('fs');
var app = express();
app.use(connect.urlencoded());
app.use(connect.json());
app.get('/upload.html', function (req, res) {
res.sendFile(__dirname + '/upload.html');
});
app.post('/upload.html', function (req, res) {
var file = req.files.myFile;
fs.readFile(file.path, function (err, data) {
if (err) throw err;
fs.writeFile(file.name, data, function (err) {
if (err) throw err;
res.send('文件上传成功!');
})
})
})
app.listen(1234, 'localhost');
compress 压缩响应流数据
cookieParser 处理 cookie
var express = require('express');
var app = express();
app.use(express.cookieParser());
app.get('/cookie.html', function (req, res) {
res.sendFile(__dirname + '/cookie.html');
});
app.post('/cookie.html', function (req, res) {
var cookies = req.cookies;
for (var key in cookies) {
res.write('名:', key);
res.write('值:', cookies[key]);
res.write('</br>');
}
res.end();
});
app.listen(1234, 'localhost');
csrf 防止跨站访问
directory 列出某目录下的文件列表
app.use(express.static(__dirname));
app.use(express.directory(__dirname), {icons: true});
methodOverride 为 bodyParser 提供 HTTP 支持
reponseTime 在响应头添加 X-Request-Time 字段
app.use(express.responseTime());
router 提供路由功能
session 提供session功能
app.use(express.session([options]))
options = {
key: connect.sid,
store: ,
fingerprint: function () {},
cookie: {path: '/', httpOnly: true, maxAge: 14400000},
secret: 'xiaolai',
}
var express = require('express');
var app = express();
app.use(express.cookieParser());
app.use(express.session({secret: 'xiaolai'}));
app.get('/', function (req, res) {
res.sendFile(__dianema + '/index.html');
req.session.username = 'xiaolai';
req.session.password = 'password';
})
static 设置访问静态文件的功能
app.use(express.static('public'))
自定义错误处理中间件
app.use(function (err, req, res, next) {
console.log(err.stack);
next();
})
app.use(function (err, req, res, next) {
res.send(500, err.message);
})
阅读全文