2014-04-21 71 views
1

我正在努力升級到expressjs 4.0。下面非常簡單的代碼將請求掛起到http://localhost:3000/,並且沒有任何重新安排的事情可以解決這個問題。但是,如果我將cookie解析器,body-parser和express-session的app.use()語句註釋掉,它就會起作用。顯然我需要他們,所以留下他們評論出來是不是一種選擇。簡單的Expressjs應用程序沒有響應

我知道我做錯了這很簡單,但我無法看到它。有人能給我一個正確的方向嗎?

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')); 
}); 

回答

4

中間件應的函數調用進行傳遞:

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

應該

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