2017-02-19 12 views
0

У меня есть простой сервер узла, например, так:Почему этот простой экспресс-сервер работает на двух портах?

var express = require('express'); 
var request = require('request'); 
var apiServerHost = "http://<IP address>:3000/api#!/" 


var app = express(); 
app.use('/', function(req, res) { 
    var url = apiServerHost + req.url; 
    req.pipe(request(url)).pipe(res); 
}); 

app.listen(3001); 

я запускаю его с node server.js. Затем в браузере оба порта 3001 и 3000 имеют доступ к серверу. Если я заменил 3001 чем-нибудь еще, он будет работать на 3000 и что-то еще.

Почему?

+1

Если вы говорите, что браузер не может получить доступ к порту 3000, независимо от того, к какому порту вы положили этот простой сервер узла on, то вы должны либо иметь какой-либо другой серверный процесс, который слушает 3000, либо настроен какой-то переадресация портов, что заставляет его что-то прослушивать на порту 3000. – jfriend00

ответ

4

Может быть, у вас есть еще один экземпляр работает (в фоновом режиме, в другом терминале) и прослушивает порт 3000.

Чтобы посмотреть, какие порты открыты и, с помощью которого процесс запуска:

netstat -ltnp 

Для увидеть, какие процессы запущены, запустите:

ps aux | grep node 

или:

ps aux | grep server.js 

Попробуйте выключить программу вниз и убедитесь, что ничего не прослушивает порт 3001, а затем попытаться открыть порт 3000.

+0

Как-то был скрытый процесс с тем же сервером из другого каталога (до того, как я переместил его), поэтому он был невидим. Он работает сейчас, спасибо! – Aurimas

 Смежные вопросы

  • Нет связанных вопросов^_^