2012-07-27 54 views
2

沒有路由器中間件,一旦服務器端接收後的數據,它可以正常登錄它:Node.js的表達:混淆關於路由器中間件

var express = require('express'); 
var app = express.createServer(); 
app.configure(function() { 
    app.use(express.static(__dirname + '/static')); 
    // app.use(app.router); 
    app.use(express.bodyParser()); 
}) 

app.get('/', function(req, res){ 
    res.send('Hello World'); 
}); 

app.post('/', function(req, res){ 
    console.log('body:', req.body); 
    res.send(req.body); 
}); 

app.listen(8000); 

但是,一旦我使用router中間件,日誌結果undefined和響應什麼都沒有

爲什麼?我怎麼解決這個問題?

+0

你怎麼稱呼的路線前叫什麼名字? – freakish 2012-07-27 10:18:24

+0

@freakish:我不叫它,我只是添加它,但不使用它 – hh54188 2012-07-27 10:19:44

+0

不是一個好的答案被接受? :/ – InspiredJW 2012-07-27 11:04:56

回答

2

問題是你叫路由器的順序

bodyParser必須路由器

app.configure(function() { 
    app.use(express.static(__dirname + '/static')); 
    app.use(express.bodyParser()); 
    app.use(app.router); 
}); 
+0

哦,是的!它成功了!但我怎麼知道訂單是否正確?是否有一些規則? – hh54188 2012-07-27 10:32:44

+0

http://expressjs.com – InspiredJW 2012-07-27 10:37:46

+0

@ hh54188建議通過官方文檔閱讀。 ,但要小心Express 3.x中的一些更改(您可以在其Github中找到Wiki中的更改) – InspiredJW 2012-07-27 10:38:39