Node.js服务启动显示自定义主机名而非localhost的问题求助
问题分析与解决方案
嘿,这个问题我之前也碰到过,很容易搞明白!
问题根源
Node.js 默认不会自动读取 .env 文件里的环境变量,所以你代码里的 process.env.HOSTNAME 并没有拿到你在 .env 里设置的 localhost,而是读取了你系统本身的 HOSTNAME 环境变量(也就是你的机器名/用户名 "Abhishek")。这就是为什么控制台会输出 http://Abhishek:5000/ 的原因。
解决步骤
别担心,几步就能搞定:
安装
dotenv包
这个包专门用来帮 Node.js 加载.env文件里的变量,在终端运行:npm install dotenv # 如果你用 yarn 的话: # yarn add dotenv在代码最顶部加载
dotenv
打开你的index.js文件,把下面这行代码放在最开头(一定要在其他代码之前,比如加载 express 之前):// CommonJS 语法(默认的 Node.js 模块系统) require('dotenv').config(); // 如果你的项目用的是 ES 模块(package.json 里有 "type": "module"),就用这个: // import dotenv from 'dotenv'; // dotenv.config();检查
.env文件格式
确保你的.env文件格式是正确的,每行一个变量,不要加空格或引号:PORT=5000 HOSTNAME=localhost
验证是否生效
你可以在加载 dotenv 之后加一行打印,确认变量是否正确读取:
require('dotenv').config(); console.log('Loaded HOSTNAME:', process.env.HOSTNAME); // 应该输出 localhost
这样修改之后,重启你的 Node.js 应用,控制台就会正确显示 http://localhost:5000/ 啦!
内容的提问来源于stack exchange,提问作者Abhishek Rawal
相关产品推荐
相关产品推荐

