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

Nodemon无报错退出等待重启及Express静态资源服务启动失败求助

解决Express静态资源托管时nodemon提示"clean exit"的问题
  • ES模块未正确配置
    你的代码使用了ES模块的import语法,但Node.js默认以CommonJS模式运行,会触发语法错误导致服务直接退出,进而出现nodemon的clean exit提示。
    解决:在项目根目录的package.json中添加配置:

    {
      "type": "module"
    }
    
  • ES模块中无法直接使用__dirname
    ES模块环境下没有__dirname全局变量,直接调用会抛出ReferenceError,导致服务启动失败。
    解决:通过import.meta.url手动获取当前文件的目录路径:

    import { fileURLToPath } from "url";
    
    const __filename = fileURLToPath(import.meta.url);
    const __dirname = path.dirname(__filename);
    
  • PORT变量赋值顺序错误
    你的代码写为const PORT = 3000 || process.env.PORT,由于3000是真值,永远不会读取环境变量中的端口配置,虽不直接导致服务退出,但属于逻辑问题,建议修正:

    const PORT = process.env.PORT || 3000;
    

修正后的完整代码

import express from "express";
import path from "path";
import { fileURLToPath } from "url";

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

const app = express();

app.use(express.static(path.join(__dirname)));

const PORT = process.env.PORT || 3000;

app.listen(PORT, () => console.log(`server listening on port ${PORT}`));

内容的提问来源于stack exchange,提问作者Hilary

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:05:18