繁体   English   中英

将数据从 node.js 发送回客户端 javascript

[英]Send back data from node.js to client side javascript

我正在尝试做的是以下我已经设置了一个从客户端 JS 到服务器 Node.JS 的获取连接,当一个人点击 HTML 中的一个按钮时,它会触发服务器端在 MongoDB 数据库中查找一个元素在它找到它,但我的问题是如何将找到的元素发送回客户端 JS。

Javascript Code:

var button = document.getElementById("1");

button.addEventListener("click", idss);


function idss() {
      var id = this.id;

    var data = {
    name : id 
}

fetch("/clicked", {
     method: 'POST',
     headers: {
     'Content-Type': 'application/json'
     }, 
     body: JSON.stringify(data)
})
   .then(function(response) {
      if(response.ok) {
        console.log('awesome');
        return;
      }
      throw new Error('Request failed.');
    })
    .catch(function(error) {
      console.log(error);
    }); 
}


NODE JS:

app.post("/clicked", (req, res) => {
    var pro = (req.body.name);
    Number(pro);
    Product.findOne({"id": pro}, function(err, foundLList) {
        if(err) {
            console.log(err);
        } else {
            console.log(foundLList); //THE ELEMENT IS FOUND
        }
    } 
  ); 
});

我想要做的是将找到的元素发送到 Javascript,以便我可以添加到另一个变量中。

您必须使用res对象将数据发送回客户端。 您的节点代码将是:

app.post("/clicked", (req, res) => {
    var pro = (req.body.name);
    Number(pro);
    Product.findOne({
        "id": pro
    }, function(err, foundLList) {
        if (err) {
            console.log(err);
            return res.status(500).json({
                ok: false,
                error: err
            });
        } else {
            console.log(foundLList); //THE ELEMENT IS FOUND
            return res.status(200).json({
                ok: true,
                data: foundLList
            });

        }
    });
});

在客户端,您可以像这样读取数据:

fetch("/clicked", {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(data)
    })
    .then(response => response.json())
    .then(function(response) {
        if (response.ok) {
            console.log('got data: ', response.data);
        }
        throw new Error('Request failed.');
    })
    .catch(function(error) {
        console.log(error);
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM