#node.js #express #ejs
Вопрос:
Я использую комбинацию express 4.17.1 для своего веб-приложения.
Мне интересно, как я могу отображать несколько файлов в зависимости от маршрута и нескольких папок
Допустим, у меня есть :
Когда я хочу перейти на путь администратора, появляется эта проблема :
Комментарии:
1. Используйте версию 4.17.1
Ответ №1:
Передача массива каталогов не будет работать, если вы используете экспресс-версию 3 или выше. Попробуйте сделать следующее
app.set('view engine', 'ejs');
var renderer = express.response.render;
express.render = () => {
app.set('views', './regular/viewPath/views');
try {
return renderer.apply(this, arguments);
}
catch (e) {...}
app.set('views', './admin/viewPath/views');
return renderer.apply(this, arguments);
};
const adminRoute = require('./routes/adminFile');
app.use('/admin', adminRoute);
Наконец, установите имя в файле администратора
router.set('name', 'adminFile');
Другой простой альтернативой было бы поместить ваши представления в разные папки
Пример:
views/index.ejs
views/admin/adminFile.ejs
app.set('views', path.join(__dirname, 'views'));
Затем на рендере вы делаете, как
res.render('views/admin/adminFile', configs);
Комментарии:
1. Используйте версию 4.17.1
2. Я нашел мечту, используя разные папки