如何使用节点将呈现的 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 %>);