Javascript 如何使用带有Express的节点向客户端发送数据?
我是web开发新手,不知道如何在为HTML页面提供服务的同时将数据从节点服务器发送到客户端。我知道res.send()发送数据,但如果不更改客户端显示,我就无法使用它。下面是我正在尝试做的一些代码(但不起作用) 服务器:Javascript 如何使用带有Express的节点向客户端发送数据?,javascript,html,node.js,express,web-development-server,Javascript,Html,Node.js,Express,Web Development Server,我是web开发新手,不知道如何在为HTML页面提供服务的同时将数据从节点服务器发送到客户端。我知道res.send()发送数据,但如果不更改客户端显示,我就无法使用它。下面是我正在尝试做的一些代码(但不起作用) 服务器: app.get('/home', function (req, res) { res.send("String with info I want in HTML"); res.sendFile(__dirname + '/home.html'); }); 客户
app.get('/home', function (req, res) {
res.send("String with info I want in HTML");
res.sendFile(__dirname + '/home.html');
});
客户:
<script>
var xhttp = new XMLHttpRequest();
alert(xhttp.responseText); //Using alert to check if I received the info I wanted
</script>
var xhttp=newXMLHttpRequest();
警报(xhttp.responseText)//使用alert检查我是否收到了想要的信息
res.render()函数完成了这项工作
res.render("your html page" , { variable : "String with info you want to send." })
我知道res.send()发送数据,但如果不更改客户端显示,我就无法使用它
你可以。你只需要让客户以正确的方式索取数据
如果客户端代码要求将URL显示为新页面,则您将更改显示。所以不要那样做。使用XMLHttpRequest
您需要:
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "/home");
xhttp.addEventListener("load", function () { alert(this.responseText); });
xhttp.send();
如果使用handlebars视图引擎,则可以执行以下操作:
res.render('home',{myText:'your string here'})
在模板{{myText}}中添加palceholder时,需要从客户端发送适当的Ajax请求。您显示的代码只是ajax请求的一小部分。web上有数千个地方可以阅读如何从浏览器Javascript进行ajax调用。然后,您只需在服务器中为ajax调用请求的URL创建一个路由,并发送一个响应(而不是您显示的两个响应)。该响应将返回到ajax调用方,他们将在Javascript中接收该响应,并可以决定如何处理该响应。就这样。没有客户端显示更改。Ajax调用不会自行更改显示。
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "/home");
xhttp.addEventListener("load", function () { alert(this.responseText); });
xhttp.send();