Reputation: 447
I am using express-generator to generate the basic routes.
Here is what i have so far in routes
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);
It is working fine.
After i add the below routes
router.route('/loginUser').post(validation.loginUser,ctrl.loginUser);
module.exports = router;
i am getting error like
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)
How can i allow more routes in the routes.js file ?
Help pls
Upvotes: 0
Views: 94
Reputation: 1152
it seems you have not exported ctrl.registerUser function in index.js.
Make sure you have something like this
in validation/user.js
exports.registerUser=function(req,res,next){...};
exports.loginUser=function(req,res,next){...};
in controller/index.js
exports.registerUser=function(req,res){...};
exports.loginUser=function(req,res){...};
Upvotes: 1
Reputation: 635
The error states that Route.post() requires a callback
.
You have:
router.route('/loginUser').post(validation.loginUser,ctrl.loginUser);
Use a callback function like so:
router.post('/loginUser', function(req, res) {
//run your loginUser logic here
});
module.exports = router; //make this file available to other files
Upvotes: 0