Wie kann ich die hintergrund Aufgabe in node.js

Sah ich, dass ich laufen konnte hintergrund-tasks mit nohup node index.js.
Mein problem ist im Zusammenhang mit folgenden Quelle.
https://github.com/Palpasa/Node-Express-Seed.
In dieser Quelle package.json Datei enthält nodemon und es funktioniert, wenn ich den server starten mit npm start.
Für jetzt, ich habe versucht zu laufen die server im hintergrund.
Aber es stürzt mit folgendem Fehler.

[nodemon] 1.14.12
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node app.js`
/home/tom/Documents/work/wallet/app/app.js:3
import bodyParser from 'body-parser';
^^^^^^

SyntaxError: Unexpected token import
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:607:28)
at Object.Module._extensions..js (module.js:654:10)
at Module.load (module.js:556:32)
at tryModuleLoad (module.js:499:12)
at Function.Module._load (module.js:491:3)
at Function.Module.runMain (module.js:684:10)
at startup (bootstrap_node.js:187:16)
at bootstrap_node.js:608:3
[nodemon] app crashed - waiting for file changes before starting...

Wie kann ich diesen server im hintergrund?

  • Welche version von Knoten verwenden Sie?
InformationsquelleAutor H.Ming | 2018-02-06



4 Replies
  1. 2

    Können Sie mehrere Bildschirme an Ihr putty.

    Bildschirm

    Dann haben Sie einen Bildschirm.
    Nun können Sie Ihre Knoten-Instanz auf diesem Bildschirm.

    Dieser Bildschirm wird lebendig die ganze Zeit.

    Geben Sie STRG+A+D, um zu gehen aus dem Bildschirm.

    Ihre node-Instanz ist jetzt immer lebendig, auch Sie beenden von putty.

  2. 1

    Kind Prozess ist, was Sie verwenden möchten.

    const { spawn } = require('child_process');
    const otherScript = spawn('node', ['script-you-wanna-run.js']);
    
    otherScript.stdout.on('data', (data) => {
      console.log(`stdout: ${data}`);
    });
    • Ich brauche kein Kind-Prozess. Ich werde ausführen, diesem server dauerhaft trotzdem Sind es eine Möglichkeit zu laufen ohne nodemon? Wenn ich entfernen Sie die nodemon, zeigt es Fehler in das Saatgut-Projekt
    • TMUX oder PM2, wäre der Weg zu gehen.
  3. 0

    Müssen Sie wahrscheinlich verwenden ES-2015 babel Vorgabe transpile die import-Anweisungen. Wenn Sie nicht brauchen, die ES6-import speziell, benutzen Sie einfach require

    var bodyParser = require("body-parser")

    Auf einer anderen Anmerkung, können Sie versuchen, mit Immer npm-Paket. Dieses mal starten Sie den Knoten server im hintergrund

    FOREVER

    npm install -g forever
    forever start server.js
    
    //To run on a custom po
    PORT=3000 forever start server.js 
    • Ich versuchte, so deine Hilfe, Es funktioniert, aber ich kann nicht finden, die port-Nummer
    • Ich denke, es läuft auf 3000 wenn nicht versuchen 8081. Wenn nicht versuchen Sie dies für benutzerdefinierte Portnummer PORT=3000 forever start server.js
    • noch nicht ausgeführt werden. Ich set PORT=3500 für immer start app.js
    • Hast du das Problem beheben Ihre import Fehler? Was sagt der stacktrace sagen, wenn Sie Sie ausführen node server.js? Wenn es das gleiche ist wie vorher, dann ändern Sie Ihre import-Anweisungen.
  4. 0

    Kann Sie nicht ausgeführt nodemon im hintergrund (ich.e nohup npm start <=> nohup nodemon app.js), nodemon soll verwendet werden, für die Entwicklungs-Umgebung, es können Sie sehen, welche änderungen an Dateien während der Entwicklung, wenn Sie auf der Suche für die Ausführung von express-app in der Produktion, Dann sollten Sie eine Prozess manager, startet die app automatisch, wenn es abstürzt oder wenn änderungen vorgenommen werden, Lesen Sie diese Artikel für weitere Informationen. Hier ist ein Beispiel mit pm2 Modul:

    Installieren pm2:

    npm install pm2 -g

    Laufen app:

    pm2 start app.js
    • Ich ausführen möchten ist diese app für die Produktion. Ich habe versucht, zu verwenden pm2 aber node-Prozess nicht ausgeführt wird
    • Versuchen pm2 start ./build/bin/www

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.