【问题标题】:Nodemon not restarting : [nodemon] restarting due to changesNodemon 未重新启动:[nodemon] 由于更改而重新启动
【发布时间】:2019-03-23 22:33:06
【问题描述】:

我正在使用这个命令:npm run server

我一直在寻找解决方案,但不知道为什么结果仍然不起作用。我试过全局安装它npm install -g nodemon,但仍然没有自动重启,只会得到这样的帖子:

我不仅在文件 Validations\register.js 中得到了这个

[nodemon] 触发更改检查的文件:validations\register.js [nodemon] 匹配规则:***.* [nodemon] 过滤后变化 (之前/之后):1/1 [nodemon] 由于更改而重新启动... [nodemon] 验证\register.js

Package.json

{
  "name": "devconnector",
  "version": "1.0.0",
  "description": "express react",
  "main": "server.js",
  "scripts": {
    "start": "node server.js",
    "server": "nodemon server.js --verbose"
  },
  "author": "Faris Dewantoro",
  "license": "MIT",
  "dependencies": {
    "bcryptjs": "^2.4.3",
    "body-parser": "^1.18.3",
    "express": "^4.16.4",
    "gravatar": "^1.6.0",
    "jsonwebtoken": "^8.3.0",
    "mongoose": "^5.3.4",
    "passport": "^0.4.0",
    "passport-jwt": "^4.0.0",
    "validator": "^10.8.0"
  },
  "devDependencies": {
    "nodemon": "^1.17.3"
  }
}

Server.js

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const passport = require('passport');

// ROUTER
const users = require('./routes/api/users');
const profile = require('./routes/api/profile');
const posts = require('./routes/api/posts');

const app = express();

app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());

// DB Config
const db = require('./config/keys').mongoURI;

// Connect to MongoDB
mongoose
    .connect(db,{ useNewUrlParser: true })
        .then(()=>{
            console.log('MongoDB Connected');
        })
        .catch((err)=>{
            console.log(err);
        });

// Passport middleware
app.use(passport.initialize());
// Passport Config
require('./config/passport')(passport);
// User routes
app.use('/api/users',users);
app.use('/api/profile',profile);
app.use('/api/posts',posts);

const port = process.env.PORT || 5000;

app.listen(port,()=>{
    console.log(`Server running on port ! ${port}`);
});

如何解决这个问题,以便 nodemon 可以自动重启服务器

注意: 我正在使用 Windows 10 Pro 2018 64x

更新 我尝试使用这样的代码,结果保持不变:

const express = require('express');

const app = express();

const port = process.env.PORT || 5000;

app.listen(port,()=>{
    console.log(`Server running on port   ${port}`);
});

[nodemon] 1.17.3 [nodemon] 随时重启,输入rs [nodemon] 或发送 SIGHUP 到 10316 以重新启动 [nodemon] 观看:. [nodemon] 观看扩展:js,mjs,json [nodemon] 开始 node server.js [nodemon] 分叉 [nodemon] 子 pid: 18172 [nodemon] 看13个文件服务器在端口上运行! 5000

当我更改console.log(Change testing ${port});

[nodemon] 触发更改检查的文件:server.js
[nodemon] 匹配规则:***.* [nodemon] 过滤器后的变化(之前/之后):1/1 [nodemon] 由于更改而重新启动...
[nodemon] Server.js

【问题讨论】:

  • [nodemon] Validations\register.js 行之后还有日志吗?
  • 不,但它没有重新启动服务器@Neverever
  • @FarisDewantoro 你可以试试 pm2 (github.com/Unitech/pm2) 或浏览器刷新(github.com/patrick-steele-idem/browser-refresh)。如果您看到类似的行为,则说明您的代码存在问题。我没有你的所有代码,所以我不确定问题可能出在哪里。另外,您的应用程序运行良好吗?通常,如果您的应用程序抛出错误 nodemon 中断。
  • nodemon 非常适合我,我认为您需要最小化代码,尝试删除所有路由、mongodb 和中间件,只保留 express,并尝试更新不同的文件(子文件或server.js 本身)
  • 我过去在使用 nodemon 时遇到的一个问题是旧进程没有完全被杀死,因此您有一个幽灵进程正在侦听端口。当 nodemon 尝试重新启动时,它会失败,因为已经有一个进程正在侦听该端口。有没有可能是这种情况?

标签: javascript node.js express npm nodemon


【解决方案1】:

Package.json

{
  "name": "devconnector",
  "version": "1.0.0",
  "description": "express react",
  "main": "server.js",
  "scripts": {
    "start": "node server.js",
    "server": "nodemon server.js"
  },
  "author": "Faris Dewantoro",
  "license": "MIT",
  "dependencies": {
    "bcryptjs": "^2.4.3",
    "body-parser": "^1.18.3",
    "express": "^4.16.4",
    "gravatar": "^1.6.0",
    "jsonwebtoken": "^8.3.0",
    "mongoose": "^5.3.4",
    "passport": "^0.4.0",
    "passport-jwt": "^4.0.0",
    "validator": "^10.8.0"
  },
  "devDependencies": {
    "nodemon": "^1.17.3"
  }
}

试试这个,

【讨论】:

    猜你喜欢
    • 2020-07-16
    • 2020-06-15
    • 2022-11-24
    • 2021-10-02
    • 2018-07-10
    • 2020-08-21
    • 2021-11-05
    • 2018-07-08
    相关资源
    最近更新 更多