Node.js + Express + <%= EJS %> 上的多个视图路径

Multiple View paths on Node.js + Express + <%= EJS %>

我正在为我的网络应用程序使用 express 4.17.1 组合。

我想知道如何根据路由和多个文件夹渲染多个文件

假设我有:

当我想进入管理路径时出现这个问题:

如果您使用的是 express 版本 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);