简单的Expressjs应用程序没有回应

时间:2014-04-21 22:45:43

标签: node.js session cookies express connect

我正在努力升级到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'));
});

1 个答案:

答案 0 :(得分:5)

中间件应该作为函数调用传递:

app.use(cookie);
app.use(body);

应该是

app.use(cookie());
app.use(body());