2016-10-04 139 views
0

我使用快速生成器來生成基本路由。節點ExpressJS路由問題

這是我在路線

var express = require('express'); 
var router = express.Router(); 
var ctrl = require('../controller/index'); 
var validation = require("../validations/user"); 
/* GET home page. */ 
router.route('/').get(ctrl.index); 
router.route('/registerUser').post(validation.registerUser,ctrl.registerUser); 

它工作正常爲止。

後我添加以下航線

router.route('/loginUser').post(validation.loginUser,ctrl.loginUser); 
module.exports = router; 

我收到錯誤,如

opt/lampp/htdocs/MedApp/node_modules/express/lib/router/route.js:171 
     throw new Error(msg); 
     ^

Error: Route.post() requires callback functions but got a [object Undefined] 
    at /opt/lampp/htdocs/MedApp/node_modules/express/lib/router/route.js:171:15 
    at Array.forEach (native) 

我怎樣才能讓在routes.js更多條路線文件?

幫助請

回答

1

好像你還沒有出口ctrl.registerUser功能index.js。

確保您有類似的驗證此

/在控制器user.js的

exports.registerUser=function(req,res,next){...}; 

exports.loginUser=function(req,res,next){...}; 

/index.js

exports.registerUser=function(req,res){...}; 

exports.loginUser=function(req,res){...}; 
+0

謝謝,但裏面的功能..我怎麼能有邏輯呼叫控制器..就是' validation.registerUser,ctrl.registerUser'? –

+0

你在說什麼功能? –

+0

我需要調用'ctrl.registerUser',一旦我在validation.registerUser中註冊用戶 –

0

的錯誤指出Route.post() requires a callback

您有:

router.route('/loginUser').post(validation.loginUser,ctrl.loginUser); 

使用一個回調函數,像這樣:

router.post('/loginUser', function(req, res) { 
    //run your loginUser logic here 
}); 

module.exports = router; //make this file available to other files 
+0

它的工作原理,但我怎麼能有'validation.registerUser,ctrl.registerUser'裏面呢? –

+0

我不知道我明白你在問什麼。你能澄清嗎?該代碼看起來不太正確。你可以在回調函數中運行這些函數'validation.registerUser''ctrl.registerUser'。 – vincentjp

+0

以這種方式''router.route('/ loginUser')。post(validation.loginUser,ctrl.loginUser);''我可以在被調用的控制器內調用'loginUser'函數。但以你說的方式。我怎樣才能做到這一點 ? –