#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% прав, но я полагаю, что это проблема, с которой вы столкнулись, поскольку у меня была похожая проблема. Я продолжу копаться, хотя 🙂