运行 Nodemon 时出现问题:“[nodemon] clean exit - waiting for changes before restart”
Posted
技术标签:
【中文标题】运行 Nodemon 时出现问题:“[nodemon] clean exit - waiting for changes before restart”【英文标题】:Problem running Nodemon: "[nodemon] clean exit - waiting for changes before restart" 【发布时间】:2021-11-08 03:55:39 【问题描述】:我正在设置服务器,每次尝试运行 npm start
时都会出现以下错误:
[nodemon] 2.0.12
[nodemon] to restart at any time, enter
`rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node index.js`
[nodemon] clean exit - waiting for changes before restart
我在 ***、YouTube 甚至 Reddit 等网上进行了研究。但是我不明白为什么会收到此错误,因为我添加了app.listen()
。我还运行了npm update
以确保我拥有最新的 npm 版本。
此外,我似乎需要恢复到旧版本的 Nodemon,但我想知道是否有更好的方法来使用更新的版本?
这是我的代码的样子:
index.js:
import express from "express";
import bodyParser from "body-parser";
import mongoose from "mongoose";
import cors from "cors";
const app = express();
app.use(express.json( limit: "30mb", extended: true ));
app.use(express.urlencoded( limit: "30mb", extended: true ));
app.use(cors());
// database connection string: PLEASE NOTE THAT I HAVE REPLACED MY PASSWORD WITH THE PROPER ONE HERE
const CONNECTION_URL =
"mongodb+srv://admin2021:<password>@cluster0.haf0y.mongodb.net/myFirstDatabase?retryWrites=true&w=majority";
const PORT = process.env.PORT || 5000;
// connect to database
mongoose
.connect(CONNECTION_URL,
useNewUrlParser: true,
useUnifiedTopology: true,
)
.then(() =>
app.listen(PORT, () => console.log(`Server running on port: $PORT`))
)
.catch(() => (error) => console.log(error.message));
package.json:
"name": "server",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts":
"start": "nodemon ./index.js"
,
// etc.
请注意,我尝试将 nodemon ./index.js
替换为 nodemon index.js
,但我得到了同样的错误。
感谢任何帮助。
【问题讨论】:
这是什么错误? nodemon 已启动并正在运行。检查localhost:<port>。但看起来它没有得到正确的 index.js。如果您的端口没有运行,请分享您的文件夹结构 嗨@sojin 谢谢你的回答,它没有运行。如果它正在运行,它会显示“服务器在端口上运行:5000”,因为我已在 index.js 中对其进行了配置。无法访问 localhost:5000。文件夹结构很简单,我在同一个文件夹中有3个文件,分别是index.js、package.json和package-lock.json。.catch(() => (error) => console.log(error.message));
是错误的,应该是 .catch((error) => console.log(error.message));
。现在看看您是否收到错误消息 - 可能端口 5000 已在使用中或类似的东西。
嗨@Bergi 哦,哇,这很管用。我对这一切都很陌生,谢谢你的帮助!
【参考方案1】:
// connect to database
try
await mongoose.connect(url, options);
catch (error)
console.log('connnection error', error)
app.listen(PORT, () => console.log(`Server running on port: $PORT`))
试试这个
【讨论】:
以上是关于运行 Nodemon 时出现问题:“[nodemon] clean exit - waiting for changes before restart”的主要内容,如果未能解决你的问题,请参考以下文章
Nodemon - 安装期间“干净退出 - 等待重新启动前的更改”
如何使用 Forever 和 Nodemon (Windows) 自动重启 Node.js 应用程序