Node.js Проблемы с модульной маршрутизацией Express 4

#node.js #passport.js #passport-local #express-4

#node.js #passport.js #паспорт-локальный #express-4

Вопрос:

Я боролся с модульностью моего node.js приложение Express, я хотел бы, чтобы каждая часть была в его собственном каталоге, но, похоже, не может правильно настроить маршрутизацию.

каждая из них находится, например, в app / lib / main, основным из которых является индекс, который загружается нормально, только не / login или / notes

консоль выдает мне это, но у меня нет каталога просмотра

Ошибка: Не удалось выполнить поиск в представлении «login.ejs» в каталоге views «/ home / dave / node / app / views»

в Function.app.render

ПОЛУЧЕНИЕ / вход 500 54 мс — 1.01кб

в настоящее время app.js выглядит так:

 var express = require('express');
var app = express();
var login = require('./lib/login');
var main = require('./lib/main');
var notes = require('./lib/notes');

app.use(express.static(__dirname   '/assets/css', { maxAge: oneDay }));// load the       folder

app.use(main);
app.use(login);
app.use(notes);

app.listen(config.server.port);
console.log('server listening on port 3000')
  

это поведение по умолчанию? Кажется, я могу найти любую информацию о node.js или экспресс-сайт

Ответ №1:

Я думаю, вам нужно разделить ваши маршруты. (http://expressjs.com/4x/api.html#router )

 app.use('/', main);
app.use('/login', login);
app.use('/notes', notes);
  

У меня похожий стиль разделения частей моего сайта за маршрутами, хотя я разделяю все в корневом каталоге «маршруты». Вы можете посмотреть, как я это сделал, если это поможет:https://github.com/codetunnel/pawproject/blob/master/app.js#L63-L65

В Express 4 шаблон заключается в создании нового маршрутизатора для каждой области. Обычно они назначаются module.exports = router в нижней части файла, и это то, к чему вы переходите app.use . Поскольку вы не указываете шаблон URL, под которым должен работать маршрутизатор, я предполагаю, что именно поэтому первый работает, а остальные не могут переопределить маршрутизатор, уже указанный в root.

Я новичок в Express 4 и все еще привыкаю к изменениям, поэтому, возможно, я не на 100% прав, но я полагаю, что это проблема, с которой вы столкнулись, поскольку у меня была похожая проблема. Я продолжу копаться, хотя 🙂