Несколько путей просмотра на Node.js Экспресс

#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. Я нашел мечту, используя разные папки