J'ai un serveur express, et tout en le construisant, j'ai créé plusieurs fonctions "d'assistance" sur leurs propres routes. J'aimerais que ces routes soient accessibles sur un autre port. Est-il possible de le faire en express?
Dans le code ci-dessous, la route "/ factory" (et d'autres fonctionnalités) serait sur un port, et les routes d'assistance de "/ killallthings", "/ listallthings" et "/ killserver" seraient sur un port séparé.
Voici une version simplifiée du code:
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);
});
Est-ce possible avec express?
D'après la suggestion ci-dessus concernant les pilules d'explosion, j'ai modifié le code de la manière suivante:
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);
});
J'aurais aimé savoir comment donner à Explosion Pills le mérite de sa réponse! :)
Si vous essayez de créer plusieurs serveurs, pourquoi ne pas créer plusieurs fichiers bin/www avec des ports et des configurations différentes. Vous pouvez également passer le numéro de port directement à partir de la ligne de commande.