我正在开发一个当前依赖于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});
};
答案 0 :(得分:1)
如果您想在没有任何模板引擎的情况下提供动态html,那么您将编写大量冗余代码。 Express本身不提供任何功能,它不应该。
你可以做的是建立一个REST API,在客户端使用MVC(angular.js
非常好)并提供数据。
例如:
GET /user-data
{
user: some_user
}
答案 1 :(得分:0)
获取您的index.html
文件,并将其设为index.jade
模板,将user
信息放在任意位置。
浏览器会将其作为HTML文件接收,而不是玉石模板。