2016-04-11 11 views
0

Ich habe ein Stück Nodejs-Code (Scheduler und einige Db-Abfragen), die ich jedes Mal mit dem Rest der App (Express App) wenn der Node-Server ausführen möchte ist gestartet.
Eine Möglichkeit, die ich mir vorstellen kann, ist das Erstellen einer Batch-Datei, die 2 Zeilen haben wird: eine zum Starten des Knoten-Servers und die andere zum Ausführen des Knotens js-Code (Habe diesen Ansatz jedoch noch nicht getestet).

Ich habe überlegt, ob es eine Möglichkeit geben könnte, diesen statischen Code über die server.js-Datei auszuführen. Ich möchte das in derselben Instanz ausführen.
Irgendwelche Hilfe hier?Nodejs: Führen Sie eine JS-Datei auf Start Node-Server

+0

Machen Sie sie einfach node.js Module und laden Sie diese anderen Dinge in Ihre Haupt-App mit 'require()'. Sie können sie dann nach Bedarf ausführen. – jfriend00

+0

Verwenden Sie 'cronjob', es würde –

+0

helfen, die sie als Knotenmodule zu machen und zu verwenden, arbeitete ... Danke –

Antwort

2

Sie können andere Skripte im selben Verzeichnis ausführen, indem require() Funktionen auf Ihre server.js Datei hinzufügen:

var exportedThings = require("./path/to/file.js"); 

In file.js können Sie Werte an das exports Objekt zuweisen sie Skripte erfordern zu exportieren:

exports.add = function(first,second){ 
    return first + second; 
} 

nun in server.js werden Sie in der Lage:

exportedThings.add(1, 5); // Outputs 6 
+0

Genau das, was ich suchte. Vielen Dank...! –

1

Sie müssen zwei Module für Scheduler- und Datenbankabfragen erstellen, um sie bei jedem Start des Knotens auszuführen. Importieren Sie diese Module in Ihrer Hauptdatei und initialisieren Sie den Startprozess wie Terminplanung und Datenbankabfragen.

zum Beispiel: Hauptdatei ist Server.js

var scheduler=require("/utils/schedular.js"); 
    scheduler.init(); 

Nun sollte Ihre scheduler.js Datei wie unten sein:

var schedular=function(){ 

var _self=this; 

_self.init=function(){ 
    console.log("init Schedular"); 
    var rule = new cron.RecurrenceRule(); 
    rule.second = 30; 
    cron.scheduleJob(rule, function(){ 
      console.log(new Date(), 'The 30th second of the minute.'); 
      // write your logic 


      }); 
    }); 
    } 
} 

    module.exports=new scheduler(); 

Wie gefällt dünnen Sie eine andere Datei zum Ausführen der anlegen müssen DB-Abfragen. Wann immer Ihre Hauptdatei mit Knoten oder für immer ausgeführt wird, werden Ihre Scheduler- und DB-Abfragen auch ausgeführt

+0

Genaue Lösung war, sie als Knotenmodule zu verwenden ... Anyways, +1 für den init-Ansatz –

Verwandte Themen