【问题标题】:how to set value of text field in html from nodejs?如何从nodejs设置html中文本字段的值?
【发布时间】:2016-05-26 01:37:14
【问题描述】:

我正在 nodejs 和 html 中做项目。任何人都可以帮助如何从 server.js 为 html 中的文本字段设置值。例如,我在 index.html 上有 ID 为“名称”的文本字段。我使用 res.body.name = 'nametest' 。但它不起作用。请给我一个简单的例子。谢谢朋友们

【问题讨论】:

    标签: javascript html node.js


    【解决方案1】:

    为了从服务器设置字段,您希望将其设置为您在发送 HTML 时定义的预设值,或者您希望稍后动态设置它。第一个选项很简单,第二个选项有点高级。

    让我们看看选项 1。这只是一个非常基本的示例!请不要在生产中使用它。

    index.html

    <!DOCTYPE html>
    <html>
      <head><!-- your stuff here --></head>
      <body><input type="text" name="someVal" value="{{someVal}}"></body>
    </html>
    

    这可能是您的 HTML。只是一个独特的占位符,你希望你的价值去。可能有更好的技术可以做到这一点,但为了简单起见,我选择了这种方式。

    server.js

    var http = require('http');
    var fs = require('fs');
    
    http.createServer((req, res) => {
      fs.readFile('index.html', (err, data) => {
        if (err) {
          res.writeHead(500);
          res.end(err);
          return;
        }
    
        data = data.toString().replace(/\{\{someVal\}\}/, 'your value here');
        res.writeHead(200);
        res.end(data, 'utf8');
      });
    }).listen(8080);
    

    此 server.js 将在端口 8080 上打开一个 HTTP 服务器。它将尝试从同一目录读取 index.html。如果失败,它将向客户端发送错误消息,否则它将用您的值替换 HTML 中的占位符,然后将修改后的内容发送给客户端。
    如果这就是你想做的全部,PHP 可能会为你做得更好(但这只是我的 2 美分 :))

    选项 2 要复杂得多。您必须使用 AJAJ (Asynchronous Javascript and JSON),它要求客户端知道何时获取值,或者您可以使用 websockets,使服务器能够将值推送到客户端。对于其中任何一个,都有很多教程,这些教程比我在这里为您整理的任何内容都要详细得多。
    如果你想使用这些技术,但对它们的实现有点不确定,你可能想看看 Meteor 和 Socket.IO 等框架

    【讨论】:

    • 感谢您的帮助,先生。但是当我运行此示例时,控制台显示错误:“C:\Program Files (x86)\JetBrains\WebStorm 10.0.2\bin\runnerw.exe”“C:\Program Files\nodejs\node.exe”服务器。 js c:\Users\ashik\WebstormProjects\placement\database\server.js:15 data.replace(/\{\{someVal\}\}/, '你在这里的价值'); ^ TypeError: data.replace is not a function at c:\Users\ashik\WebstormProjects\placement\database\server.js:15:6 at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:380:3)跨度>
    • 啊,对不起。 data 是一个对象,所以你必须在调用replace() 之前调用toString()。我修复了答案中的代码。
    • 谢谢先生。现在它的工作...有没有办法通过 id 或名称将其值获取到我可以存储我的数据库的外部 js 文件???/
    • 没问题。如果我解决了您的问题,请将我的回复标记为答案,以便其他人知道您的问题已解决。是的,当然您可以将所有这些内容存储在数据库中。您可以查看数据库模块(如 MySQL)。或者,您可以使用 JSON 文件。请不要将值存储在 .js 文件中。 .js 文件用于代码,而不是用于数据。
    • 谢谢先生。我正在做个人资料页面。所以我想从 js 文件中设置 html 中字段的值。如何通过调用 id 或 name 来设置从 js 提交的 html 的值。
    【解决方案2】:

    您不能从服务器端设置客户端的东西。它们是完全不同的物理层。

    您需要的是 AJAX 来从您的 Web 应用程序向您的 NodeJS 服务器端应用程序请求资源,并将您放入的响应设置为整个 文本字段.

    也许您需要查看 ExpressJS 来构建一个简单的 RESTful 服务来在您的客户端和服务器层之间共享资源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-17
      • 2012-05-17
      • 1970-01-01
      • 2021-07-23
      • 1970-01-01
      • 2019-02-15
      • 2012-12-12
      相关资源
      最近更新 更多