Reputation: 1658
I am having a problem creating a driver for my route. For some reason it does not recognize the send()
property.
This is the code of my route:
const express = require('express');
const router = express.Router();
const Ctrl = require('../controllers/index');
/* GET home page. */
router.get('/', Ctrl.list());
module.exports = router;
And this is the code of my controller:
const express = require('express');
Ctrl = {}
Ctrl.list = (req, res) => {
res.send("sended");
}
module.exports = Ctrl;
The same happens when I use traditional functions, which are not an arrow functions.
On the other hand, this is my express configuration where the configured routes are:
const express = require('express');
const path = require('path');
const cookieParser = require('cookie-parser');
const logger = require('morgan');
const helmet = require('helmet');
const indexRouter = require('./routes/index');
const usersRouter = require('./routes/users');
const app = express();
require('./database/config');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(helmet());
app.use('/', indexRouter);
app.use('/users', usersRouter);
module.exports = app;
I am getting this error:
E:\elarchivero\api\controllers\index.js:6 res.send("sended"); ^
TypeError: Cannot read property 'send' of undefined at Object.Ctrl.list (E:\elarchivero\api\controllers\index.js:6:8) at Object. (E:\elarchivero\api\routes\index.js:6:22) at Module._compile (internal/modules/cjs/loader.js:959:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10) at Module.load (internal/modules/cjs/loader.js:815:32) at Function.Module._load (internal/modules/cjs/loader.js:727:14) at Module.require (internal/modules/cjs/loader.js:852:19) at require (internal/modules/cjs/helpers.js:74:18) at Object. (E:\elarchivero\api\app.js:7:21) at Module._compile (internal/modules/cjs/loader.js:959:30) [nodemon] app crashed - waiting for file changes before starting...
Upvotes: 0
Views: 406
Reputation: 417
You need to change your router to a function reference rather than a call.
router.get('/', Ctrl.list);
Upvotes: 2