Node ExpressJS路由中的路由问题

时间:2016-10-04 06:38:30

标签: node.js express mean-stack express-generator

我正在使用express-generator来生成基本路线。

这是我到目前为止的路线

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文件中允许更多路由?

帮助

2 个答案:

答案 0 :(得分:1)

似乎你还没有在index.js中导出ctrl.registerUser函数。

确保你有类似的东西

验证/ user.js中的

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

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

在controller / index.js

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

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

答案 1 :(得分: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