одно приложение nodejs / express работает только на локальном хосте, но не использует IP-адрес, другое приложение nodejs / express работает нормально? - PullRequest
0 голосов
/ 27 марта 2020

У меня есть супер простое приложение Hello World, которое я должен запустить на myipaddress:3000 вместо просто localhost:3000, выполнив:

var express = require("express"),
    app = express(),
    bodyParser = require("body-parser"),
    http = require("http");


app.use(bodyParser.urlencoded({ extended: true }));

app.get("/", function(req, res) {
    res.render("home.ejs");
  });


app.listen(3000, "0.0.0.0", function() {
   console.log('Server running on port 3000');
 });

, но у меня есть еще один, более сложный node.js / * Приложение 1012 *, которое также использует mongoDB / mon goose, где, когда я изменяю app.listen, чтобы включить "0.0.0.0", оно все еще работает только на localhost:3000. Я не уверен, что может быть причиной этого, может быть, что-то делать с mongoDB? это единственная реальная разница между теми приложениями, о которых я могу подумать, что будет иметь значение. Я не запускаю их обоих на порту 3000 одновременно. Я также проверил Hello World с другим портом, и он работал нормально, но другое приложение этого не сделало.

Кто-нибудь знает, что еще может быть проблемой здесь? Дайте мне знать, если вам нужен какой-либо другой код.

1 Ответ

0 голосов
/ 28 марта 2020

Как я знаю, 0.0.0.0 предоставляется в качестве хоста для доступа из внешнего интерфейса. И если вы не укажете хост при вызове app.listen() Сервер будет работать на всех доступных интерфейсах ie. на 0.0.0.0, но вы можете привязать IP-адрес как

  app.listen(3000, '127.0.0.1', function(){
   console.log('Server running on port 3000');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...