我正在努力升级到expressjs 4.0。下面非常简单的代码会将请求挂起到http://localhost:3000/
,并且没有任何重新排列的内容修复了这些问题。但是,如果我注释掉cookie-parser,body-parser和express-session的app.use()语句,它就可以了。显然我需要它们,所以留下它们注释掉不是一种选择。
我知道我做错了,这很简单,但我无法看到它。有人可以给我一个正确方向的推动吗?
var express = require('express')
, cookie = require('cookie-parser')
, body = require('body-parser')
, session = require('express-session')
, http = require('http');
var app = express();
var router = express.Router();
app.use(cookie);
app.use(body);
app.use(session({ secret: 'bigsecret' }));
router.get('/', function(req, res, next) {
res.send('Welcome');
});
app.use(router);
app.set('port', process.env.PORT || 3000);
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
答案 0 :(得分:5)
中间件应该作为函数调用传递:
app.use(cookie);
app.use(body);
应该是
app.use(cookie());
app.use(body());