在使用 Express.js 进行开发时,有时会遇到一个报错:“Listening on undefined:undefined”。这个报错通常会在尝试启动服务器时出现,它告诉我们服务器监听的 IP 地址和端口号都是 undefined。
那么,为什么会出现这个报错呢?如何解决它?本文将为大家详细介绍。
问题原因
在 Express.js 中,我们可以使用以下代码启动服务器:
const express = require('express'); const app = express(); app.listen(3000, () => { console.log('Server is running on port 3000'); });
这段代码会启动一个监听端口为 3000 的服务器,并在控制台输出“Server is running on port 3000”。
但是,如果我们在启动服务器时没有指定端口号,就会出现“Listening on undefined:undefined”的报错。
例如,以下代码就会出现这个报错:
const express = require('express'); const app = express(); app.listen(() => { console.log('Server is running'); });
这是因为,当我们没有指定端口号时,Express.js 会默认使用端口号为 0,表示随机分配一个可用的端口号。但是,在控制台输出日志时,我们使用了端口号 0,而这个端口号并不是我们想要监听的端口号,因此就出现了“Listening on undefined:undefined”的报错。
解决方法
要解决这个问题,我们需要明确服务器监听的 IP 地址和端口号。对于 IP 地址,我们可以使用 0.0.0.0,表示监听所有的 IP 地址。对于端口号,我们可以手动指定一个合适的端口号。
例如,以下代码就可以解决这个问题:
const express = require('express'); const app = express(); const PORT = 3000; app.listen(PORT, '0.0.0.0', () => { console.log(`Server is running on ${PORT}`); });
这段代码会启动一个监听端口为 3000,IP 地址为 0.0.0.0 的服务器,并在控制台输出“Server is running on 3000”。
总结
通过本文的介绍,我们了解了“Listening on undefined:undefined”报错的原因,以及如何解决它。在使用 Express.js 进行开发时,我们要注意明确服务器监听的 IP 地址和端口号,避免出现这个报错。
希望本文能够帮助大家更好地使用 Express.js 进行开发。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65f98c93d10417a22256a76d