it-swarm.com.de

NodeJS Express - getrennte Routen an zwei Ports

Ich habe einen Express-Server, der während des Baus mehrere "Hilfsfunktionen" auf eigenen Routen erstellt hat. Ich möchte, dass diese Routen von einem anderen Hafen aus erreicht werden. Gibt es sowieso, dies ausdrücklich zu tun?

Im folgenden Code befindet sich die Route "/ factory" (und andere Funktionen) an einem Port und die Hilfswege "/ killallthings", "/ listallthings" und "/ killserver" an einem separaten Port. 

Hier ist eine vereinfachte Version des Codes:

var express = require('express');
var things = [];
var app = express();
var port = 8080; 

app.post('/factory/', function(req, res) {
  //Create a thing and add it to the thing array
});

//Assume more functions to do to things here....

app.post('/killallthings/', function(req, res) {
  //Destroy all the things in the array
});

app.post('/listallthings/', function(req, res) {
  // Return a list of all the things
});

app.post('/killserver/', function(req,res){
  //Kills the server after killing the things and doing clean up
});

//Assume https options properly setup.

var server = require('https').createServer(options, app);

server.listen(port, function() {
    logger.writeLog('Listening on port ' + port);
});

Ist das mit express möglich?

22
JKC

Basierend auf dem oben genannten Vorschlag für Explosionspillen habe ich den Code ungefähr wie folgt geändert:

var express = require('express');
var things = [];
var app = express();
var admin_app = express();
var port = 8080; 
var admin_port = 8081;

app.post('/factory/', function(req, res) {
  //Create a thing and add it to the thing array
});

//Assume more functions to do to things here....

admin_app.post('/killallthings/', function(req, res) {
  //Destroy all the things in the array
});

admin_app.post('/listallthings/', function(req, res) {
  // Return a list of all the things
});

admin_app.post('/killserver/', function(req,res){
  //Kills the server after killing the things and doing clean up
});

//Assume https options properly setup.

var server = require('https').createServer(options, app);

server.listen(port, function() {
    logger.writeLog('Listening on port ' + port);
});

var admin_server = require('https').createServer(options, admin_app);

admin_server.listen(admin_port, function() {
    logger.writeLog('Listening on admin port ' + admin_port);
});

Ich wünschte, ich wüsste, wie ich Explosion Pills die Antwort für die Antwort geben kann! :)

30
JKC

Wenn Sie versuchen, mehrere Server zu erstellen, können Sie mehrere bin/www-Dateien mit unterschiedlichen Ports und Konfigurationen erstellen. Eine andere Möglichkeit wäre, die Portnummer direkt von der Kommandozeile zu übergeben.