Node.JS не работает в интернете
У меня есть основное приложение hello world для веб-сервера для nodejs в Windows, и оно работает на localhost. Но когда я тестирую его из интернета, он не может подключиться. Я настроил переадресацию портов в моем сетевом маршрутизаторе. Я пропускаю здесь шаг, чтобы сделать мой сервер nodejs видимым для внешнего мира?
Благодарю.
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');
3 ответа
Убедитесь, что вы слушаете 0.0.0.0
вместо 127.0.0.1
127.0.0.1
является частной сетью, видимой только вашему компьютеру. 0.0.0.0
прослушивает все интерфейсы, включая как приватный, так и публичный (настолько общедоступный, насколько это возможно за NAT).
Похоже, вы привязываете сервер к IP-адресу 127.0.0.1
который является localhost. Если вы хотите получить к нему доступ в другом месте, вам нужно установить для него интернет-IP. Проверьте whatismyip.com и используйте этот IP вместо этого.
Просто чтобы убедиться.
Ваш код должен работать так.
var http = require('http');
const port = 1337;
const host = '0.0.0.0';
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(port, host);
console.log('Server running at http://${host}:${port}');