You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js服务启动显示自定义主机名而非localhost的问题求助

问题分析与解决方案

嘿,这个问题我之前也碰到过,很容易搞明白!

问题根源

Node.js 默认不会自动读取 .env 文件里的环境变量,所以你代码里的 process.env.HOSTNAME 并没有拿到你在 .env 里设置的 localhost,而是读取了你系统本身的 HOSTNAME 环境变量(也就是你的机器名/用户名 "Abhishek")。这就是为什么控制台会输出 http://Abhishek:5000/ 的原因。

解决步骤

别担心,几步就能搞定:

  1. 安装 dotenv 包
    这个包专门用来帮 Node.js 加载 .env 文件里的变量,在终端运行:

    npm install dotenv
    # 如果你用 yarn 的话:
    # yarn add dotenv
    
  2. 在代码最顶部加载 dotenv
    打开你的 index.js 文件,把下面这行代码放在最开头(一定要在其他代码之前,比如加载 express 之前):

    // CommonJS 语法(默认的 Node.js 模块系统)
    require('dotenv').config();
    
    // 如果你的项目用的是 ES 模块(package.json 里有 "type": "module"),就用这个:
    // import dotenv from 'dotenv';
    // dotenv.config();
    
  3. 检查 .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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 16:52:36