データベースにローカルjsonファイルを使用するエクスプレスサーバーがあります。 getterとsetterにはhttps://github.com/typicode/lowdbを使用しています。Nodemonはサーバーを再起動し続けます
現在のところ、サーバーは問題なく起動して再開しますが、アクセスできません。以下は私の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}`);
});
});
しかし、私は常にDBに書いているわけではありません。スタートアップ時のみデフォルトのdbを書き込む。私の構文がどこかで間違っているため、無限ループが起こっていますか? – Dileet
サーバの起動時に明示的に書き込む必要はありませんが、サーバ起動時にlowdbが.JSONファイルや他の関連ファイルに書き込んでいる可能性があります。 –
@Dileetまた、コードを見直した後、この行は 'db.defaults(defaultdb).write()'を実行しているようです。起動時にこれを実行するので、上記の無限ループにぶつかります。 –