Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用带有Express的节点向客户端发送数据?_Javascript_Html_Node.js_Express_Web Development Server - Fatal编程技术网

Javascript 如何使用带有Express的节点向客户端发送数据?

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'); }); 客户

我是web开发新手,不知道如何在为HTML页面提供服务的同时将数据从节点服务器发送到客户端。我知道res.send()发送数据,但如果不更改客户端显示,我就无法使用它。下面是我正在尝试做的一些代码(但不起作用)

服务器:

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

您需要:

  • 创建XHR对象
  • 询问URL
  • 发送请求
  • 等待回应
  • 看看反应
  • 您跳过了步骤2、3和4

    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();