Я хочу сделать базовую экспресс-маршрутизацию.Но он возвращает -> Ошибка: Route.get () требует функцию обратного вызова, но получил [объект Undefined] - PullRequest
0 голосов
/ 13 ноября 2018

Мотив: базовая экспресс-маршрутизация.поскольку в одном каталоге много файлов, я хочу, чтобы этот путь к каталогу обрабатывался переменной.Но другой файл обрабатывается отдельно.Поэтому, когда я кодирую путь, для него требуется только имя файла.Это облегчит программирование.

Давайте посмотрим, у меня есть основной файл app.js, расположенный в "./", и вот я код:

var next = require('./routes');
app.get('/', next.index);

Путь обрабатывается переменной next,У меня также есть файл index.js, расположенный в "./routes", и здесь я код:

var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

module.exports = router;

Вместо ответа, он возвращает ошибку как ->

Error: Route.get() requires a callback function but got a [object Undefined]

Но когдая заменяю следующую переменную, как следует из app.js:

var next = require('./routes/index');
app.get('/', next);

Это работает.Так, где я должен измениться?

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Этот код вызывает ошибку, потому что при использовании require он автоматически запрашивает файл index.js каталога. Таким образом, эти 2 строки кода совпадают.

var next = require('./routes');
var next = require('./routes/index');

Поэтому, когда вы сделаете этот код, это вызовет ошибку, потому что next.index не существует.

var next = require('./routes');
app.get('/', next.index); // This will cause an error

Правильный способ сделать это:

var next = require('./routes');
app.get('/', next);
0 голосов
/ 13 ноября 2018

Simple ..

В Node.js, когда вам требуется использование, вы стремитесь загрузить модуль

Если вы напечатаете (с console.log) результат require('./routes'), вы увидите, что этот модуль не выставляет index вообще

Когда вы используете require('./routes/index') , вы загружаете другой модуль , который содержит необходимые вам функции

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