如何使用Node with Express将数据发送到客户端?

时间:2018-05-14 01:18:01

标签: javascript html node.js express web-development-server

我是Web开发的新手,无法弄清楚如何在提供HTML页面的同时将数据从Node服务器发送到客户端。我知道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>

2 个答案:

答案 0 :(得分:0)

  

我知道res.send()发送数据但我不能在不改变客户端显示的情况下使用它。

你可以。您只需让客户以正确的方式询问数据。

如果客户端代码要求将URL显示为新页面,则您将更改显示。所以不要这样做。使用XMLHttpRequest

var xhttp = new XMLHttpRequest();
alert(xhttp.responseText); //Using alert to check if I received the info I wanted

你需要:

  1. 创建XHR对象
  2. 要求提供网址
  3. 发送请求
  4. 等待回复
  5. 查看回复
  6. 您已跳过第2,3和4步骤!

    var xhttp = new XMLHttpRequest();
    xhttp.open("GET", "/home");
    xhttp.addEventListener("load", function () { alert(this.responseText); });
    xhttp.send();
    

答案 1 :(得分:-1)

res.render()函数可以胜任!

console.log("Loading function");
var AWS = require("aws-sdk");

exports.handler = function(event, context) {
    var eventText = JSON.stringify(event, null, 2);
    var decodeText = new Buffer(eventText, 'base64').toString('ascii');
    console.log("Received event:", eventText);
    var sns = new AWS.SNS();
    var params = {
        Message: decodeText, 
        Subject: "Test SNS From Lambda",
        TopicArn: "arn:aws:sns:region:account:snsTopic"
    };
    sns.publish(params, context.done);
};