如何使用节点将呈现的 html AND 数据发送到浏览器?
How do I send rendered html AND data to the browser with node?
在 index.html 中,我有一个带有 action="/results" 的搜索表单。服务器端我有这个代码:
app.get('/results', function(req, res) {
api.getInfo({query: req.query.searchStr}).then(function(data) {
res.render('results', {title: 'Search Results'}, function(err, html) {
res.send(html);
});
});
});
如果我写 res.send(data)
那么该数据就会变成一个字符串并在浏览器中输出。所以我需要一种方法来发送呈现的 html,但也将 data
发送到客户端 javascript。最传统的方法是什么?
您可以将数据发送到您的模板:
res.render('results', {title: 'Search Results', data: data });
然后在您的模板文件中引用 data
:
// results.ejs
var data = <%= data %>;
// or
doSomethingWithData(<%= data %>);
在 index.html 中,我有一个带有 action="/results" 的搜索表单。服务器端我有这个代码:
app.get('/results', function(req, res) {
api.getInfo({query: req.query.searchStr}).then(function(data) {
res.render('results', {title: 'Search Results'}, function(err, html) {
res.send(html);
});
});
});
如果我写 res.send(data)
那么该数据就会变成一个字符串并在浏览器中输出。所以我需要一种方法来发送呈现的 html,但也将 data
发送到客户端 javascript。最传统的方法是什么?
您可以将数据发送到您的模板:
res.render('results', {title: 'Search Results', data: data });
然后在您的模板文件中引用 data
:
// results.ejs
var data = <%= data %>;
// or
doSomethingWithData(<%= data %>);