【发布时间】: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