【问题标题】:Render HTML string in Node?在 Node 中渲染 HTML 字符串?
【发布时间】:2016-11-13 11:57:48
【问题描述】:

好的,所以我已经下载了Express,将端口设置为process.env.PORT || 8080,并将应用变量设置为var app = express()。现在,我想要完成的不是通过文件呈现 HTML,我可以通过字符串来完成吗?

var html = "<!DOCTYPE html>\n<html>\n    <head>\n    </head>\n <body>\n      <h1>Hello World!</h1>\n   </body>\n</html>";
app.get('/',function(req,res){
   res.render(html);
});

有没有办法做到这一点?

【问题讨论】:

  • 使用res.send(html);
  • 你不应该把 HTML 代码放在你的控制器中。而是使用 Jade 之类的模板引擎
  • @aaronbartell 我可以像这样发送 HTML:res.send("&lt;h1&gt;Hello World!&lt;/h1&gt;") 但不能在变量中。为什么我不能在变量中发送它?
  • @baranskistad,我发现res.end(htmlVar); 有效,而res.send(htmlVar); 无效

标签: html node.js rendering


【解决方案1】:

您可以使用字符串来执行此操作,但您应该将调用转换为 Javascript 调用,这样只有需要替换的部分才会显示在网页上。 Ajax 调用从控制器 a : res.send("This is a String) 返回到其客户端。在客户端,您可以将此 result 放入元素 innerHtml 中,然后您将拥有某种 SPA :-)

【讨论】:

    【解决方案2】:

    文档中指定的res.render 方法:渲染视图并将渲染后的HTML 字符串发送到客户端。因此您需要使用模板引擎,例如:jade、ejs、handlebars。 . 但如果您的目的是只输出一些 html,您可以使用 res.send 来代替。

    【讨论】:

    猜你喜欢
    • 2011-07-26
    • 1970-01-01
    • 2014-08-29
    • 2021-01-30
    • 2016-10-01
    • 2017-03-21
    • 1970-01-01
    • 2017-09-05
    • 2023-02-21
    相关资源
    最近更新 更多