2016-10-04 93 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'函数。但以你说的方式。我怎样才能做到这一点 ? –