web-dev-qa-db-fra.com

Nodemon - "sortie propre - attente des modifications avant le redémarrage" pendant l'installation

J'essaie de configurer une API RESTful avec Node and Postgres. J'ai rencontré un problème dans lequel, chaque fois que j'essaie d'exécuter le serveur (à l'aide de npm start) pour le tester localement, j'obtiens le résultat suivant:

[nodemon] 1.14.10 [nodemon] pour redémarrer à tout moment, entrez rs [nodemon] en regardant:. [nodemon] à partir de node index.js server.js [nodemon] clean exit - attend les modifications avant de redémarrer

Après une recherche en ligne pendant un certain temps, je ne peux pas trouver trop de ressources sur ce que signifie exactement "sortie nette - attendre les modifications avant de redémarrer", en particulier dans ce cas.

Ceci est mon fichier 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 }

Voici mon fichier 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;

Des idées sur ce qui pourrait se passer ici? Merci d'avance.

4
cosmicluna

Il y a quelques problèmes avec votre code. Vous n'avez jamais dit à votre application de fonctionner. Lorsque vous êtes prêt à créer vos itinéraires, vous devez démarrer votre serveur avec:

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

De plus, vous avez une application Express et un routeur dans le même fichier. Le routeur ne doit être utilisé qu'en tant que sous-module (pratique lorsque vous souhaitez diviser votre application en plusieurs fichiers). En ce moment, vous ne faites rien avec ça. Si vous supprimez le routeur et l'exportation, cela devrait fonctionner correctement.

4
Kamil Kulach

Je m'interroge également sur cette déclaration consignée par nodemon. Je n'ai vécu cela que les derniers jours de vue. Je reçois cette erreur si une erreur de syntaxe existe dans le code de mon serveur express. Quand je démarre le serveur via

> node server

le serveur ne démarre pas et même ne connecte rien à la console . Comportement étrange je pense. Il semble que ce message n’ait rien à voir avec nodemon ..__ Je n’ai jamais fait l’expérience de ce type de nœud dans le passé. Chaque fois qu'une erreur de syntaxe était introduite, un message d'erreur indiquant le suivi de la pile envoyé à la console était généré.

Comme je l'ai déjà dit, il ne s'agissait que d'une erreur de syntaxe: un crochet de fermeture manquait dans un bloc .then.

Après tout, je ne sais pas pourquoi le noeud n’imprimait pas la trace de pile, comme je l’ai déjà fait auparavant.

J'étudie plus avant, mais une chose à apprendre de ce genre d'erreur est probablement d'utiliser un linter pour écrire du code javascript ou d'aller plus loin et d'utiliser TypeScript. J'utilise TypeScript pour développer le client avec Angular et les possibilités de détection précoce des erreurs de syntaxe sont excellentes.

0
Torsten Barthel