Node Express app.listen(PORT) 给出错误:getaddrinfo ENOTFOUND base

问题描述 投票:0回答:1

我正在运行一个在 Node 中构建的 Express 服务器,并希望使用 app.listen 将其绑定到我的本地主机,这是我的 server.js 文件中的命令。

"use strict";

const app = require("./app");
const { PORT } = require("./config");
console.log(PORT)

app.listen(PORT, function(err){
  if (err) console.log("Error in server setup")
  //no error being outputted here.
  console.log("Server listening on Port", PORT);
})

配置中需要的端口有条件地设置为3001,并在

app.listen
的回调中打印出来,这意味着没有(err)被捕获。

但是我在终端中收到的错误如下:

node:internal/process/promises:288
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error: getaddrinfo ENOTFOUND base
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) {
  errno: -3008,
  code: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'base'
}

据我了解,我们只需将端口号传递给

app.listen()
即可将其绑定到本地主机,但这个错误我不确定。非常感谢您的帮助。我见过这个问题的一些变体,但没有遇到过 Express 服务器,所以希望你能帮助我。

尝试搜索各种解决方案并将主机参数添加到 app.listen() 尝试更改端口号,还尝试对端口号进行硬编码,而不是在配置中动态选择它。

express server localhost
1个回答
0
投票

在没有看到包含内容的情况下很难肯定地说,但通过一些小的更改,我能够使其工作。

我使用 dotenv 并将 PORT 卡在环境变量中。有一个文件名.env,里面有PORT=3000。

希望这对您有帮助:

"use strict";

const express = require("express");
var path = require("path");
require('dotenv').config();

const PORT = process.env.PORT;
console.log(PORT)

const app = express();
app.set("port", PORT || 3000);

app.listen(PORT, function(err){
  if (err) console.log("Error in server setup")
  //no error being outputted here.
  console.log("Server listening on Port", PORT);
})
© www.soinside.com 2019 - 2024. All rights reserved.