运行Nodemon出现“clean exit - waiting for changes before restart”报错如何解决
Nodemon启动clean exit问题修复方案
根因定位
你的代码中Mongoose数据库连接的异常捕获逻辑存在语法错误,导致数据库连接失败时没有输出错误日志,进程执行完所有逻辑后直接正常退出,因此Nodemon返回clean exit - waiting for changes before restart提示,该问题与Nodemon版本无关,无需回退版本。
错误代码片段如下:
// 错误写法:catch回调返回了一个未执行的箭头函数,不会实际打印错误 .catch(() => (error) => console.log(error.message));
修复步骤
- 修正Mongoose连接的异常捕获逻辑
将原来的Mongoose连接代码替换为如下写法:
// 连接数据库 mongoose .connect(CONNECTION_URL, { useNewUrlParser: true, useUnifiedTopology: true, }) .then(() => app.listen(PORT, () => console.log(`Server running on port: ${PORT}`)) ) // 修正:直接将error作为回调参数,触发时直接执行打印逻辑 .catch((error) => console.log("数据库连接失败:", error.message));
- 重新执行
npm start启动服务,此时会输出数据库连接的具体错误信息,根据错误提示排查对应问题即可,常见异常场景包括:
- MongoDB Atlas的IP白名单未添加你当前设备的公网IP
- 连接字符串中的密码未正确替换,或密码包含特殊字符未做URL转义
- MongoDB集群处于不可访问状态
验证方式
你可以在mongoose.connect()代码前添加一行调试日志,确认代码正常加载执行:
console.log("开始尝试连接数据库...");
修正后只要数据库连接正常,服务就会正常启动,不会再出现提前退出的问题。
内容的提问来源于stack exchange,提问作者speakernode
相关产品推荐
相关产品推荐

