1. ホーム
  2. javascript

[解決済み] Nodemon - セットアップ中に「clean exit - waiting for changes before restart」。

2022-02-18 20:44:23

質問事項

NodeとPostgresを使用してRESTful APIをセットアップしようとしています。私は、ローカルでそれをテストするために(npm startを使用して)サーバを実行しようとすると、次のような出力が表示されるという問題に遭遇しました。

[nodemon] 1.14.10 [nodemon] いつでも再起動できるように、以下のように入力します。 rs [nodemon] 見ています。 . [nodemon]起動 node index.js server.js [nodemon] clean exit - 再起動する前に変更を待ちます。

しばらくネットで検索してみましたが、特にこの場合、"clean exit - waiting for changes before restart"が正確に何を意味するのか、あまり多くのリソースを見つけることができません。

これは私のqueries.jsファイルです。

  1 var promise = require('bluebird');
  2 
  3 var options = {
  4   // Initialization Options
  5   promiseLib: promise
  6 };
  7 
  8 // created an instance of pg-promise, override default pgp lib w bluebird
  9 var pgp = require('pg-promise')(options);
 10 var connectionString = 'postgres://localhost:3000/actions';
 11 var db = pgp(connectionString);
 12 
 13 // add query functions
 14 
 15 module.exports = {
 16   getAllActions: getAllActions,
 17 //  getSingleAction: getSingleAction,
 18 //  createAction: createAction,
 19 //  updateAction: updateAction,
 20 //  removeAction: removeAction
 21 };
 22 
 23 function getAllActions(req, res, next) {
 24   db.any('select * from acts')
 25     .then(function (data) {
 26       res.status(200)
 27         .json({
 28           status: 'success',
 29           data: data,
 30           message: 'Retrieved ALL actions'
 31         });
 32     })
 33     .catch(function (err) {
 34       return next(err);
 35     });
 36 }

以下は、私のindex.jsファイルです。

  3 var express = require('express');
  4 var app = express();
  5 var router = express.Router();
  6 var db = require('./queries');
  7 
  8 // structure: expressInstance.httpRequestMethod(PATH, HANDLER)
  9 app.get('/api/actions', db.getAllActions);
 10 //app.get('/api/actions/:id', db.getSingleAction);
 11 //app.post('/api/actions', db.createAction);
 12 //app.put('/api/actions/:id', db.updateAction);
 13 //app.delete('/api/actions/:id', db.removeAction);
 14 
 15 module.exports = router;

ここで何が起こっているのか、何か考えがありますか?よろしくお願いします。

解決方法は?

あなたのコードには、いくつかの問題があります。アプリを実行するように指示していない。ルートを作成する準備ができたら、サーバーを起動する必要があります。

app.listen(<port on which the server should run here>);

また、Expressアプリとルーターが同じファイルに入っていますね。ルーターはサブモジュールとしてのみ使用する必要があります(アプリを複数のファイルに分割する場合に便利です)。今は何もしていませんね。ルーターとエクスポートを削除すれば、正常に動作するはずです。