【发布时间】:2022-10-16 21:52:49
【问题描述】:
我想将请求从一个本地主机发送到在同一台机器上运行的另一个本地主机。
第一个是localhost:3000,第二个是localhost:3005。
下面的代码来自试图向:3000发送请求的:3005:
return new Promise<EventResponse>((resolve, reject) => {
const httpOptions= {
hostname: "http://localhost:3000", //not working also without http/https
method: 'POST',
path: '/api/something',
headers: {
"Content-Type": "application/json",
}
}
const request = http.request(httpOptions, (res: IncomingMessage) => {
res.setEncoding("utf8");
res.on("error", reject);
});
request.on("error", (err) => {
console.log("ERROR: ", err); //ENOTFOUND
reject;
});
request.on("timeout", () => {
request.destroy();
reject({
statusCode: 400
});
});
request.write(JSON.stringify(payload));
request.end();
});
有人可以告诉我为什么上面的代码会抛出这个:
ERROR: Error: getaddrinfo ENOTFOUND 127.0.0.1:3000
at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:71:26) {
errno: -3008,
code: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: '127.0.0.1:3000'
}
我确定:3000 服务器在发送此请求期间正在运行。
谢谢你的帮助!
【问题讨论】:
-
当您在浏览器中打开
localhost:3000时,它是否有效?
标签: javascript node.js typescript http