2015-02-27 18 views
17

Tôi có một máy chủ tốc hành và trong khi xây dựng nó đã tạo một số chức năng "trợ giúp" trên các tuyến đường của riêng chúng. Tôi muốn các tuyến đường đó được truy cập trên một cổng khác. Có anyway để làm điều này trong thể hiện?NodeJS Express - các tuyến đường riêng biệt trên hai cổng

Trong mã bên dưới, tuyến "/ factory" (và chức năng khác) sẽ nằm trên một cổng và các tuyến đường trợ giúp của "/ killallthings", "/ listallthings" và "/ killserver" sẽ nằm trên cổng riêng biệt.

Đây là một phiên bản đơn giản của các mã:

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); 
}); 

Đây có phải là có thể với cao tốc?

+5

Bạn có thể tạo hai ứng dụng –

+0

Bằng cách "tạo hai ứng dụng", bạn có nghĩa là một cái gì đó như thế này: 'var app1 = express(); var app2 = express(); '? Tôi sẽ cung cấp cho một thử nhanh chóng ... – JKC

+1

Có và sau đó bạn sẽ có họ lắng nghe trên các cổng riêng biệt –

Trả lời

24

Dựa trên nổ Thuốc gợi ý ở trên, tôi sửa đổi mã trong khoảng cách này:

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); 
}); 

Tôi ước gì tôi biết làm thế nào để cung cấp cho Thuốc nổ tín dụng cho câu trả lời! :)

+0

Đây có thể là một câu hỏi ngớ ngẩn nhưng bất kỳ hạn chế nào đối với cấu hình này ?? Tôi hỏi vì nó có vẻ dễ dàng và tôi đang sao chép nội dung này ngay bây giờ. :) – user2348688

+0

một phản ứng muộn :) Tôi đoán nhược điểm lớn nhất là an ninh. đối với ứng dụng của chúng tôi, đó chỉ là công cụ kiểm tra tạm thời sử dụng nội bộ và cổng quản trị chỉ nhằm giữ cho các thành viên nhóm không kỹ thuật tránh xa một số chức năng - không cần bảo mật thực sự. nói chung, tôi sẽ không muốn để lộ chức năng quản trị với cổng là bảo vệ duy nhất. nhưng đó là một giải pháp tốt cho những gì chúng tôi cần. – JKC

0

Nếu bạn đang cố gắng tạo nhiều máy chủ thì tại sao không gộp nhiều tệp bin/www với các cổng và cấu hình khác nhau. Một cách khác có thể được chuyển số cổng trực tiếp từ dòng lệnh.

Các vấn đề liên quan