javascript - 可以在 Express 中使用多个 View 引擎和多个 View 文件夹吗?

标签 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});
};

最佳答案

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

否则您可以做的是构建 REST API,在客户端使用 MVC(angular.js 非常好)并提供数据。

例如:

GET /user-data

{
    user: some_user
}

关于javascript - 可以在 Express 中使用多个 View 引擎和多个 View 文件夹吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31462539/

相关文章:

JavaScript 函数未定义

javascript - 单击图标播放以开始声音,然后单击停止图标以停止声音

node.js - 连接到 Couchbase 服务器集群

javascript - 从 NodeJS 中抛出的字符串获取堆栈跟踪

node.js - 在没有 API Gateway 的情况下在 lambda 函数中进行路由

javascript - 有没有办法在 express.js 路由中编写 html(或 jade 等)?

javascript - 如何将变量传递给nodemailer中的html页面?

javascript - knockoutjs 可观察对象绑定(bind)的可观察数组

javascript - 从 JavaScript 对象伪造 Node.js 可读文件流

node.js - 如何使用nodejs检测DVD驱动器名称?