在Express中可以同时使用多个视图引擎和多个视图文件夹吗?

时间:2015-07-16 19:08:00

标签: javascript node.js express

我正在开发一个当前依赖于Jade模板并使用以下设置的项目:

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

我正在构建一个' V2'该网站的版本将使用客户端HTML而不是Jade。我设置了一个基本的解决方法,通过在我的路由处理程序中执行以下操作来避免当前的Jade结构:

function(req, res) {
  res.sendFile(path.join(__dirname, '../assets/v2', 'index.html'));
};

问题是我现在还需要发送req.user详细信息以及呈现页面,显然res.sendFile()不允许这样做。 理想情况下,我想在我的路由处理程序中执行类似的操作:

function(req, res) {
  res.render(path.join(__dirname, '../assets/v2', 'index.html'), {user: req.user});
};

2 个答案:

答案 0 :(得分:1)

如果您想在没有任何模板引擎的情况下提供动态html,那么您将编写大量冗余代码。 Express本身不提供任何功能,它不应该。

你可以做的是建立一个REST API,在客户端使用MVC(angular.js非常好)并提供数据。

例如:

GET /user-data

{
    user: some_user
}

答案 1 :(得分:0)

获取您的index.html文件,并将其设为index.jade模板,将user信息放在任意位置。

浏览器会将其作为HTML文件接收,而不是玉石模板。