J'ai enfin fini de convertir l'un de mes projets pour utiliser node.js, mais je rencontre maintenant des problèmes de garder mon app exécutant sur le serveur: / Le problème est que si je ferme mon noeud de session de mastic s'arrête. J'ai fait beaucoup de recherche sur ce problème, et il semble que la création d'un script code> UPStart code> et à l'aide du module J'ai commencé à googler et j'ai créé ce script UPSTART: P> Forever code> est le moyen d'aller. p >
jjmpsp@alex:~$ npm install forever
npm ERR! error installing forever@0.9.2 Error: No compatible version found: node-fork@'>=0.4.0- <0.5.0-'
npm ERR! error installing forever@0.9.2 No valid targets found.
npm ERR! error installing forever@0.9.2 Perhaps not compatible with your version of node?
npm ERR! error installing forever@0.9.2 at installTargetsError (/usr/local/lib/node_modules/npm/lib/cache.js:424:10)
npm ERR! error installing forever@0.9.2 at /usr/local/lib/node_modules/npm/lib/cache.js:406:17
npm ERR! error installing forever@0.9.2 at saved (/usr/local/lib/node_modules/npm/lib/utils/npm-registry-client/get.js:136:7)
npm ERR! error installing forever@0.9.2 at Object.cb [as oncomplete] (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:36:9)
npm ERR! Error: No compatible version found: node-fork@'>=0.4.0- <0.5.0-'
npm ERR! No valid targets found.
npm ERR! Perhaps not compatible with your version of node?
npm ERR! at installTargetsError (/usr/local/lib/node_modules/npm/lib/cache.js:424:10)
npm ERR! at /usr/local/lib/node_modules/npm/lib/cache.js:406:17
npm ERR! at saved (/usr/local/lib/node_modules/npm/lib/utils/npm-registry-client/get.js:136:7)
npm ERR! at Object.cb [as oncomplete] (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:36:9)
npm ERR! Report this *entire* log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR!
npm ERR! System Linux 3.8.4-x86_64-linode31
npm ERR! command "node" "/usr/local/bin/npm" "install" "forever"
npm ERR! cwd /home/jjmpsp
npm ERR! node -v v0.5.11-pre
npm ERR! npm -v 1.0.106
npm ERR! Error: EACCESS, Permission denied 'npm-debug.log'
npm ERR! Report this *entire* log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR!
npm ERR! System Linux 3.8.4-x86_64-linode31
npm ERR! command "node" "/usr/local/bin/npm" "install" "forever"
npm ERR! cwd /home/jjmpsp
npm ERR! node -v v0.5.11-pre
npm ERR! npm -v 1.0.106
npm ERR! path npm-debug.log
npm ERR! code EACCESS
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/jjmpsp/npm-debug.log
npm not ok
7 Réponses :
Tout d'abord, vous devez vous concentrer sur ce qui tue votre serveur de nœuds. Pour toujours ne va pas "corriger" le problème. Chaque fois que le nœud quitte / le redémarre sera em> causer des problèmes et que vos utilisateurs peuvent perdre des données. La seule solution à long terme pour trouver / corriger chaque source d'erreurs et écrire une suite de test de régression pour vérifier que chaque problème précédent a été corrigé. P>
li>
Votre UPStart code> ou
pour toujours code> ne viens que de la bande. (En fait, UPSTART redémarrera votre serveur, mais cela abandonnera si votre serveur ne reste pas en marche.) P>
Démarrer le démarrage code> ne fonctionnera pas p>
li>
pour toujours code> est enfoncé à cause des autorisations. Essayez
sudo npm install -g pour toujours code>
Avancée:
Votre configuration de serveur entière doit être scriptée. De cette façon, vous pouvez configurer un serveur de test / de stadification qui mirent la production. Un moyen simple de faire est Vagrant . Vous pouvez développer "localement" sur le même système d'exploitation sur votre serveur. Et vous pouvez tester des choses comme "Le code code> est-il monté lorsque je redémarre?" ou "si le serveur est éliminé, puis-je recréer mon serveur à partir du système d'exploitation de base?" P>
li>
ol>
Comme vous pouvez le dire, je suis nouveau à tout cela: P J'ai essayé «Sudo NPM install -g pour toujours», mais je reçois toujours la même erreur qu'auparavant lorsqu'il est installé pour toujours. Il est étrange que le journal d'erreur indique toujours «NPM ERR! NODE -V V0.5.11-PRE 'Quand je sais que je cours v0.10.5. En ce qui concerne la recherche de la source d'erreurs, j'ai écrit mon code afin qu'il gère efficacement les erreurs, mais il semble que l'erreur que j'ai traçée dans le journal des erreurs a été causée par l'un des modules de noeud intégrés. Avez-vous des suggestions sur pourquoi ne pas toujours pas l'installation? Merci :)
Après quelques heures douloureuses de read, je pense avoir finalement résolu mon problème! On dirait que j'aurais pu avoir 2 versions de noeud ou quelque chose! Pour une référence future: si vous êtes nouveau à nœud, assurez-vous d'installer nvm code> pour faciliter la gestion des versions de noeuds et vous ne rencontrerez pas ce problème :) p>
https://unix.stackexchange.com/questions/479/keekee -ssh-sessions-exécutant-après-déconnexion p>
Faites ceci: p>
écran code> // puis appuyez sur Entrée
nœud server.js code> p>
des journaux ce qui semble être le problème dans votre cas est votre connexion MySQL. Chaque fois que le serveur MySQL ferme la connexion, le serveur de nœuds mourrait. Vous pouvez utiliser une mise en commun de connexion Kealive ou utilisée. P>
Je pense que pour toujours ne quitte pas votre application Nodejs de manière inattendue, cela pourrait être dû au paramètre MySQL 'WAITT_TIMEOUT' défini sur 28800 secondes (I.E 8 heures) par défaut. Si l'application Nodejs n'interagit pas avec la base de données MySQL pendant 8 heures, la connexion est fermée. Vous devez définir la valeur WAIT_TIMEOUT sur 'Max Value' (c'est-à-dire 365 jours) ou toute autre valeur que vous avez besoin dans les paramètres MySQL DB.
lien pour les paramètres WAIT_TIMEOUT: P>
http://dev.mysql.com/doc/refman/5.0 /en/server-system-variables.html#ssysvar_wait_timeout p>
ou p>
ajoutez le code suivant dans votre code. Ce code ping le MySQL DB une fois dans une heure et votre connexion ne se cassera pas. p>
// code de ping mysql commence p> // mysql ping code extrémise p> Vous pouvez également utiliser le code de HandleSConnect () et gérez l'erreur de connexion particulière dans le code comme indiqué dans l'exemple ci-dessous. p> /// code démarre P> fonction de fonctionnement de fonctionnement () { p>
Utilisez Keymetric.IO, il redémarrera automatiquement votre application de nœud si un problème se produit. p>
Après beaucoup de recherches et de mauvaises solutions, j'ai trouvé PM2 (une partie de Keymetrics, recommandée par Karlos) sera de loin la meilleure solution. Vous pouvez le trouver ici: P>
Semble Lite, vous exécutez une ancienne version du nœud. Pouvez-vous essayer de mettre à niveau et de voir si cela fait une différence. Pour voir quelle version vous exécutez, vous pouvez exécuter processus.version; dans une console de nœud. Je pense que vous souhaitez également exécuter l'installation avec le drapeau global. NPM Installer -g pour toujours
jjmpsp @ alex: ~ $ nœud> processus.version 'v0.10.5'
J'ai essayé de courir 'sudo npm install -g pour toujours' aussi: / hmm
Il est étrange que le journal d'erreur indique toujours «NPM ERR! Node -V V0.5.11-PRE 'Quand je sais que je cours v0.10.5