Node/Express应用启动后出现ERR_CONNECTION_REFUSED问题求助
问题解决步骤
代码中的核心错误
你的代码里存在一个致命的无效调用,直接导致服务器监听异常:
app.listen(process.emitWarning.PORT);
process.emitWarning是Node.js的内置方法,用于触发警告信息,根本不是存储环境变量的对象。这行代码会让Express尝试监听一个undefined的端口,即便后续你又调用了正确的app.listen,这次无效调用已经干扰了服务器的正常启动流程。
修复后的完整代码
require('dotenv').config() const express = require("express"); const app = express(); app.use('/places', require('./controllers/places')) app.get("/", (req, res) => { res.send("Hello World!"); }); app.get('*', (req, res) => { res.status(404).send('<h1>404 Page </h1>') }) // 先正确获取端口变量,再启动服务器 const PORT = process.env.PORT; app.listen(PORT, () => { console.log(`app running on port ${PORT}`); // 用变量输出端口,避免硬编码 });
额外建议
- 确保
.env文件格式正确,去掉变量名和值之间的空格:PORT=3000(原内容的空格可能导致process.env.PORT获取到带空格的无效值) - 测试访问时优先使用
http://localhost:3000或http://127.0.0.1:3000,避免域名解析异常的问题
内容的提问来源于stack exchange,提问作者Just Ben
相关产品推荐
相关产品推荐

