使用 Nodejs [duplicate] 触发 JavaScript 函数

Trigger a JavaScript function with Nodejs [duplicate]

提问人:NathaThink 提问时间:11/16/2023 最后编辑:Brian Tompsett - 汤莱恩NathaThink 更新时间:11/16/2023 访问量:48

问:

我想使用 Nodejs 触发客户端函数 JavaScript 我正在尝试从 Nodejs 获得响应以在我的网站上显示数据

程序会向我的 Nodejs Api 示例 (htpp://localhost:3000/apiResponse) 发送一个包含一些数据的 API 我想将 API 数据发送到我的前端

我该怎么做,或者有没有另一种方法可以在 API 发送给我时触发函数值?

JavaScript 节点 .js 函数

评论

0赞 Dean Van Greunen 11/16/2023
在这里使用websocket
0赞 tevemadar 11/16/2023
developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/......

答:

0赞 Wil Moore III 11/16/2023 #1

您可以使用浏览器原生函数来调用您的 API:fetch

fetch('http://localhost:3000/apiResponse')
  .then(response => response.json())
  .then(json => console.log(json))

const main = async () => {
  const json = await (await fetch('http://localhost:3000/apiResponse')).json();
  console.log(json);
};

main();
0赞 GoodJuJu 11/16/2023 #2

这就是我的处理方式。

  1. 在前端创建一个函数,用于向本地节点服务器发出请求。该函数是异步的,因为我们不确定服务器需要多长时间才能响应。例如,您可以在按钮单击中调用该函数。
  const handleGetResponse = async () => {
    let data = {};
    try {
      const response = await fetch("htpp://localhost:3000/apiResponse").then(res => res.json())
        data = response;
        console.log("%cdata:", data);
    } catch(error) {
      console.log(error);
    }
  }
  1. 在节点文件中创建一个函数来处理响应
const nodeHandleResponse = () => { // handle response };
  1. 在同一节点文件中,创建接收前端请求的路径,并调用处理响应的节点函数。然后,将响应发送到前端。
app.get("/apiResponse", async (req, res) => {
  nodeHandleResponse().then(response => res.send(response))
});

请注意,来自前端的请求 url 与节点路径 -> “apiResponse” 相同。GET