我在nodejs和html中做项目。可以帮助人们如何在server.js的html中设置值到文本字段。例如,我带有id' name'的文本字段。在index.html上。我使用res.body.name =' nametest'但是它不起作用。请给我一个简单的例子。谢谢朋友们
答案 0 :(得分:0)
您无法从服务器端设置客户端事物。它们是完全不同的物理层。
您需要 AJAX 从Web应用程序向NodeJS服务器端应用程序请求资源,并根据整个文本字段设置您放置的内容
也许您需要查看ExpressJS来构建一个简单的RESTful服务,以便在客户端和服务器层之间共享资源。
答案 1 :(得分:0)
要从服务器设置字段,您希望将其设置为您在发送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这样的框架