Проблемы с моделью контроллера маршрута в express - PullRequest
0 голосов
/ 13 января 2020

У меня проблема с созданием драйвера для моего маршрута. По какой-то причине он не распознает свойство send().

Это код моего маршрута:

const express = require('express');
const router = express.Router();
const Ctrl = require('../controllers/index');

/* GET home page. */
router.get('/', Ctrl.list());

module.exports = router;

А это код моего контроллера:

const express = require('express');

Ctrl = {}

Ctrl.list = (req, res) => {
   res.send("sended");
}

module.exports = Ctrl;

То же самое происходит, когда я использую традиционные функции, которые не являются функциями стрелок.

С другой стороны, это моя конфигурация express, где настроены маршруты:

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;

Я получаю эту ошибку:

E: \ elarchivero \ api \ controllers \ index. js: 6 res.send ("отправлено"); ^

TypeError: Невозможно прочитать свойство 'send' из неопределенного в Object.Ctrl.list (E: \ elarchivero \ api \ controllers \ index. js: 6: 8) в Object. (E: \ elarchivero \ api \ router \ index. js: 6: 22) в Module._compile (внутренний / modules / cjs / loader. js: 959: 30) в Object.Module._extensions .. js (внутренний / modules / cjs / loader. js: 995: 10) в Module.load (внутренний / modules / cjs / loader. js: 815: 32) в Function.Module._load (внутренний / modules /cjs/loader.js:727:14) в Module.require (внутренний / modules / cjs / loader. js: 852: 19) по требованию (внутренний / modules / cjs / helpers. js: 74 : 18) на объекте. (E: \ elarchivero \ api \ app. js: 7: 21) в Module._compile (внутренний / modules / cjs / loader. js: 959: 30) Сбой приложения [nodemon] - ожидание изменений файла до начиная ...

1 Ответ

2 голосов
/ 13 января 2020

Вам нужно изменить свой маршрутизатор на ссылку на функцию, а не на вызов.

router.get('/', Ctrl.list);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...