最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

一个nodejsexpress应用程序仅可在本地主机上运行, 但不能使用IP地址,另一个nodejsexpress应用程序可正常运行?

IT培训 admin 11浏览 0评论

一个nodejs / express应用程序仅可在本地主机上运行, 但不能使用IP地址,另一个nodejs / express应用程序可正常运行?

我有一个非常简单的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 / express应用程序,该应用程序也使用mongoDB / mongoose,当我将app.listen更改为包括"0.0.0.0"时,它仍然只能在localhost:3000上运行。我不确定是什么原因造成的,也许与mongoDB有关?这是我能想到的应用程序之间唯一真正的区别。我不会同时在端口3000上同时运行它们。我还使用其他端口测试了Hello World,但工作正常,但其他应用程序却没有。

有人知道这里还有什么问题吗?让我知道是否需要查看其他代码。

回答如下:

据我所知,0.0.0.0是作为主机从外部接口访问的。并且,如果您在调用app.listen()时未指定主机,则服务器将在所有可用接口上运行。在0.0.0.0上,但您可以像[]那样绑定IP地址

app.listen(3000, '127.0.0.1');

一个nodejs / express应用程序仅可在本地主机上运行, 但不能使用IP地址,另一个nodejs / express应用程序可正常运行?

我有一个非常简单的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 / express应用程序,该应用程序也使用mongoDB / mongoose,当我将app.listen更改为包括"0.0.0.0"时,它仍然只能在localhost:3000上运行。我不确定是什么原因造成的,也许与mongoDB有关?这是我能想到的应用程序之间唯一真正的区别。我不会同时在端口3000上同时运行它们。我还使用其他端口测试了Hello World,但工作正常,但其他应用程序却没有。

有人知道这里还有什么问题吗?让我知道是否需要查看其他代码。

回答如下:

据我所知,0.0.0.0是作为主机从外部接口访问的。并且,如果您在调用app.listen()时未指定主机,则服务器将在所有可用接口上运行。在0.0.0.0上,但您可以像[]那样绑定IP地址

app.listen(3000, '127.0.0.1');
发布评论

评论列表 (0)

  1. 暂无评论