2015-06-25 45 views
1

我試圖用req.params獲得路徑變量「用戶id」的價值,但我得到不確定,如果任何一個可以指導我這個問題我會非常感謝他。我已將我的代碼放置在下面。 我已經通過一些例子,但這些例子也是這樣做的,我不知道我的代碼出了什麼問題。
謝謝你,爲控制器如何獲得快遞(node.js的)路徑變量

母路由器

app.use("/user/:userId/group",groupController); 

操作在控制器

Router.post("/", function (req, res, next) { 

    var group = new Group(req.body); 

    console.log(req.params); 

    group.userId = req.params.userId; 

    group.save(new dataCallbacks(req, res, next, "Group").insert()); 
}); 
+0

嗯,什麼是第一條路線具有與辦第二個只獲得根請求的POST請求? – adeneo

+0

它不會發布在根目錄下,如果他使用'app.use(..)' –

+0

@ adeneo,第一個是控制器的父根目錄,第二個是發佈後的「/」路徑動作 –

回答

1

我認爲你是錯你的路線,你不能路線/user/:userId/group,並張貼到/這沒有意義。我的意思是讓userId PARAM,你應該張貼到/user/:userId/group

路由文件route.js

var ctrl = require('controller.js'); 

app.route('/user/:userId/group').post(ctrl.doIt); 

控制器的文件controller.js

exports.doIt = function(req, res, netx) { 
    var group = new Group(req.body); 

    console.log(req.params); 

    group.userId = req.params.userId; 

    group.save(new dataCallbacks(req, res, next, "Group").insert()); 
}); 
+0

我使用單獨的文件控制器我不能這樣做 –

+0

我認爲你可以改變後路線到一箇中間件,並做類似'app.use(「/用戶/ userId/group「,require('./ path-to/groupController');' 注意:我會爲http動詞編寫單獨的路由,例如'get','post'''''''''' –

+0

編輯答案在不同的文件上有功能 –