【问题标题】:how to insert data into pages in nodeJSnodeJS如何将数据插入页面
【发布时间】:2021-09-18 22:07:59
【问题描述】:

我最近开始使用 NodeJS,在长时间使用 PHP 之后,我想知道是否有任何类似于“echo”的东西。一种将数据作为部分发送的方式,允许我在两者之间发送我自己的值。比如用html写一个网站的某个部分的结构,然后用node将相关数据发送到div里面。

【问题讨论】:

  • 我的建议,看看 React.JS、Angular.JS 或 Vue.JS 的前端应用程序。
  • 没有等价物。通常 Nodejs 只在服务器端工作,你需要一些软件来公开 API 或类似的东西。如前所述,您想签出诸如“flask”之类的包或用于 API 构造的 express(这很容易),您必须使用 fetch、websockets 或 xhttprequest 从服务器获取数据。您可能会发现有趣的是服务器端渲染、结帐npmjs.com/package/mustache 或像 react、vue 或 angular 这样的框架。
  • @SilvanBregy —“通常 Nodejs 只在服务器端工作”嗯。是的。就像 PHP 一样。问题是问如何更像。 Node.js 非常有能力生成 HTML 而不是 Web 服务。 Express 指南甚至涵盖了模板引擎。
  • @Quentin,你是对的。我试图解释这些差异,但让我们参考答案而不是我糟糕的英语。'' ^^ Pfff,22k 答案。 GG! '' ,等等,让我数一下我的……啊,我有,甚至不到二十个;)

标签: javascript php html node.js


【解决方案1】:

简短的回答是“是”。您可以重复writeresponse 对象,然后在完成后调用end

response.setHeader("Content-Type", "text/plain");
response.write("foo"); 
response.write("bar"); 
response.write("baz"); 
response.end();

但是,这通常不是有充分理由采取的方法。

Separating your concerns(例如,拆分“数据获取”和“HTML 生成”)通常使事情更易于管理。

这就是为什么使用 Node.js 在服务器端构建页面的最常见方法是将页面的所有数据收集到一个对象中,然后将其传递给 template

当然,您可以将数据收集逻辑拆分为各自模块中的函数,这样您就可以得到如下结果:

const my_data = {
    header: get_header_data(request),
    content: get_template_name_data(request),
};
response.render('template_name', my_data)

你喜欢多少分割成更小的块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多