Dil*_*eet 8 javascript node.js
我有一个快速服务器,它使用本地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}`);
});
});
Run Code Online (Sandbox Code Playgroud)
以前有人有这样的问题吗?我认为这与这一行有关:
db.defaults(defaultdb).write().then(() => {
const server = app.listen(app.get('port'), () => {
console.log(`Express running ? PORT ${server.address().port}`);
});
});
Run Code Online (Sandbox Code Playgroud)
从文档中:
nodemon将监视启动nodemon的目录中的文件,如果任何文件发生更改,nodemon将自动重新启动您的节点应用程序。
如果您数据库的.JSON文件处于nodemon的监视之下,并且您不断对其进行写入,则服务器将在无限循环中重新启动,从而使其无法访问。尝试通过将.JSON文件移动到目录之外或通过某些nodemon配置(如果可能)将其移动到nodemon监视范围之外。
我的解决方案:我在package.json文件中添加了nodemonConfig以停止无限循环/重新启动。在package.json 中:
"nodemonConfig": { "ext": "js", "ignore": ["*.test.ts", "db/*"], "delay": "2" },
"scripts": { "start": "nodemon" }
Run Code Online (Sandbox Code Playgroud)
小智 5
不断的重启让我感到困惑。我开始nodemon --verbose查看是什么原因导致重新启动。
这表明我的package.json文件是罪魁祸首。我在Dropbbox文件夹中运行安装,并且刚刚从node_modules文件夹中删除了所有文件,然后执行了全新安装。当时共享我的Dropbox文件夹的另一台计算机正在运行,但我不知道,它正在忙于更新其node_module文件并同时更新package.json文件的Dropbox副本。
我的解决方案很简单,我休息了一会儿,等待Dropbox完成对node_modules文件夹的索引。当Dropbox完成同步时,nodemon运行时没有任何意外的重启。
| 归档时间: |
|
| 查看次数: |
5212 次 |
| 最近记录: |