2015-11-19 44 views
0
var express = require('express'); 
var router = express.Router(); 

var messages = []; 

router.get('/',function(req,res){ 
    res.render('index'); 
}); 

// Method 1 
router.route('/send') 
    .all(function (req, res, next) { 
     next(); 
    }) 
    .post('/send', function (req, res) { // unresolved function or method post() 
     console.log("Message sent"); 
     var msg = req.body.message; 
     if (msg != '') { 
      messages.push(msg); 
     } 
     res.redirect('/'); 
    }); 

// Method 2 
router.post('/send', function (req, res) { // unresolved function or method post() 
    console.log("Message sent"); 
    var msg = req.body.message; 
    if (msg != '') { 
     messages.push(msg); 
    } 
    res.redirect('/'); 
}); 

我試圖用POST方法發送的請求,但我不斷收到「未解決的函數或方法。員額()」。未解決的函數或方法後()快遞4.x的路由器

我試圖做同樣的Express文檔中:Express Router

我希望得到任何幫助。

+0

我認爲這是不相關的節點,但到IntelliJ IDEA的。你使用intellij嗎? – Molda

+0

是的。我會嘗試另一位編輯。 –

回答

0

我可以看到的唯一不合適的是.post中的'/send'參數。您已經參考router.route('/send')中的路線。見router.route() reference

試試這個:

router.route('/send') 
    .all(function (req, res, next) { 
     next(); 
    }) 
    .post(function (req, res, next) { 
     console.log("Message sent"); 
     var msg = req.body.message; 
     if (msg != '') { 
      messages.push(msg); 
     } 
     res.redirect('/'); 
    }); 
+0

仍未定義:/我沒有得到,這正是文檔所說的 –

+0

什麼版本的節點? Express版本?運行您的原始代碼導致我的錯誤。在像上面那樣修復它之後,沒有產生錯誤。 –

+0

node 5.0.0&express 4.13.3 –