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

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

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

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

应该

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