我有一个Express服务器,它使用本地json文件作为数据库,我使用https://github.com/typicode/lowdb作为getter和setter。
目前服务器不断启动和重启没有任何问题,但无法访问它。下面是我的Server.js文件:
import express from 'express'
import session from 'express-session'
import bodyParser from 'body-parser'
import promisify from 'es6-promisify'
import cors from 'cors'
import low from 'lowdb'
import fileAsync from 'lowdb/lib/storages/file-async'
import defaultdb from './models/Pages'
import routes from './routes/index.js'
const app = express();
const db = low('./core/db/index.json', { storage: fileAsync })
app.use(cors())
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use('/', routes);
app.set('port', process.env.PORT || 1337);
db.defaults(defaultdb).write().then(() => {
const server = app.listen(app.get('port'), () => {
console.log(`Express running → PORT ${server.address().port}`);
});
});
以前有人遇到过这样的问题吗?我想和这句话有关:
db.defaults(defaultdb).write().then(() => {
const server = app.listen(app.get('port'), () => {
console.log(`Express running → PORT ${server.address().port}`);
});
});
9条答案
按热度按时间anauzrmj1#
从文档中:
nodemon将监视nodemon启动目录中的文件,如果任何文件发生更改,nodemon将自动重新启动节点应用程序。
如果你的数据库的.JSON文件在nodemon的监视之下,而你一直在写它,你的服务器将在无限循环中重启,从而使它无法访问。尝试将你的.JSON文件移出nodemon的监视范围,方法是将它移出你的目录或通过一些nodemon配置(如果可能的话)。
dhxwm5r42#
我从this page解决了这个问题。
实际上你只需要
nwo49xxi3#
我的解决方案:我已经在package.json文件中添加了nodemonConfig,以便停止无限循环/重新启动。在package.json中:
s4chpxco4#
我对不断的重启感到困惑。我从**
nodemon --verbose
**开始,看看是什么导致了重启。这表明我的package.json文件是罪魁祸首。我在一个Dropbox文件夹中运行我的安装,刚刚从我的node_modules文件夹中删除了所有文件,并进行了全新安装。另一台共享我的Dropbox文件夹的电脑当时正在运行,我不知道,它正忙于更新其node_module文件,并在更新的同时更新package.json文件的Dropbox副本。
我的解决方案很简单,我休息了一会儿,等待Dropbox完成对node_modules文件夹的索引。当Dropbox完成同步后,nodemon运行起来,没有任何意外的重启。
oipij1gg5#
在我的情况下(这是相同的OP),只是忽略数据库文件的工作
yhived7q6#
您可以使用这个通用配置文件,将其命名为
nodemon.json
,并将其放在项目的根文件夹中。nnsrf1az7#
我通过将以下代码添加到
package.json
文件中解决了这个问题55ooxyrt8#
在您的package.json“nodemonConfig”中添加以下内容:{“ext”:“js”,“忽略”:[“.测试.ts”,“db/”],“延迟”:“二”}
ax6ht2ek9#
我通过在我的package.json中创建一个脚本来解决这个问题,如下所示:
如果在全局范围内安装了Supervisor,则此操作将有效。
现在我所做的就是:
npm run start-continuous