Reputation:
I'm following a tutorial for API basics, whenever I run my project I get the error Error: Route.post() requires a callback function but got a [object Undefined]
here is my routes file
module.exports = function (app) {
var todoList = require('../controllers/todoListController');
app.route('/tasks')
.get(todoList.list_all_tasks)
.post(todoList.create_a_task);
app.route('/task/:taskId')
.get(todoList.read_a_task)
.put(todoList.update_a_task)
.delete(todoList.delete_a_task);
};
and here is my server.js
file
var express = require('express'),
app = express(),
port = process.env.PORT || 3000,
mongoose = require('mongoose'),
Task = require('./api/models/todoListModel'), //created model loading here
bodyParser = require('body-parser');
// mongoose instance connection url connection
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost/Tododb');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var routes = require('./api/routes/todoListRoutes'); //importing route
routes(app); //register the route
app.listen(port);
console.log('todo list RESTfaul API server started on: ' + port);
Even though I've tried passing a callback function to post
method, but still it won't compile
Upvotes: 0
Views: 165
Reputation: 3252
You can try doing this.
...
app.route('/tasks')
.get((req, res) => { return todoList.list_all_tasks( req, res) }),
.post((req, res) => { return todoList.create_a_task(req, res) })
Upvotes: 1
Reputation: 834
U need to insert callback to your post method
module.exports = function (app) {
var todoList = require('../controllers/todoListController');
app.route('/tasks')
.get(todoList.list_all_tasks)
.post(todoList.create_a_task, function(req, res) {//smth});
};
Upvotes: 1