运行 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(() =&gt; (error) =&gt; console.log(error.message)); 是错误的,应该是 .catch((error) =&gt; 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 应用程序

Nodemon index.js

PhpStorm nodemon 调试 - 不要停在断点上

如何在超级终端中停止运行 Node.js (Express) 服务器

express js:端口正在运行但无法终止端口