使用Nodejs触发一个JavaScript函数[duplicate]

vulvrdjw  于 2023-11-17  发布在  Node.js
关注(0)|答案(2)|浏览(138)

此问题在此处已有答案

Use server side events to dynamically send message to browser(2个答案)
昨天就关门了。
我想用Nodejs触发一个客户端函数JavaScript,我试图从Nodejs获得响应,以便在我的网站上显示数据
一个程序将向我的Nodejs Api示例(htpp://localhost:3000/apiResponse)发送一个API,其中包含一些数据,我希望将API数据发送到我的前端
我该如何做到这一点,或者有没有其他方法可以在API向我发送时触发函数值?

xwbd5t1u

xwbd5t1u1#

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

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

am46iovg

am46iovg2#

我会这么处理
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与节点GET路径->“apiResponse”相同。

相关问题