javascript - Node.js 似乎忽略了我给出的 IP 地址,而是使用 localhost 打开服务器

标签 javascript node.js server

我尝试自己解决这个问题,但失败了。起初,我只是想创建最简单的本地主机服务器,而且它有效,所以我考虑了在线服务器(通过端口转发),以便我的 friend 检查我的代码。我想我做错了什么,所以我问你。代码:

var http = require('http');

var options = {
    hostname: '178.217.195.9',
    port: 45555
};

var server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end("working?");
});

server.listen(options, () => {
  console.log(`Server running at 178.217.195.9:45555`);
});`

来源:https://nodejs.org/docs/v8.11.2/api/synopsis.html

我试图在最新版本(10.3.0)上运行此代码,今天我尝试使用推荐的版本(8.11.2)。没有任何变化,所以我想这一定是我的错。

发生什么事了?当我检查(端口转发后)178.217.195.9:45555时,它不存在。

但是当我检查 localhost:45555 时,它起作用了。我不知道该说些什么。

这很奇怪,正如主题所说,它似乎忽略了我输入的IP,用localhost更改它。

也许代码是错误的。我听说“只需用你的公共(public) IP 更改 127.0.0.1 就可以了”,所以我就这样做了。

此代码适用于本地主机服务器吗?

我不知道它是否有任何帮助,但通常我使用 p5.js 库(编码列车),端口转发设置为:服务端口 - 45555, IP 地址 - 192.168.0.103(在 cmd 中检查),内部端口 - 45555,协议(protocol) - TCP 或 UDP。

我在防火墙中添加了 45555 端口的异常(exception)。有时,当我尝试更改代码以测试其他选项时,但概念是相同的,它会显示错误:监听 EADDRNOTAVAIL 178.217.195.9:45555

更改端口没有帮助。然后我通常会回到 ^ 这段代码。通过控制面板我将IP设置为静态。 IP地址:192.168.0.103,默认网关:192.168.0.1,子网掩码:255.255.255.0(如果有任何帮助的话)。

之前(我不记得具体是什么时候,但大约是 3 个多月前)我还将首选 DNS 服务器设置为:8.8.8.8 和 8.8.4.4。当前 Node.js 版本是 8.11.2,npm 6.1.0。我真的不想使用 Heroku 或其他类似的程序。我听说过一些关于 WebSockets 的事情,稍微搞了一下,但什么也没发生。我对那里的有用信息没有任何其他想法。我希望有人能帮助我,我会回答有关其他信息的每个问题。

最佳答案

选项中必须是主机,而不是主机名。因此,对于您的代码,选项中不存在 host ,因此使用 localhost 作为默认值。

server.listen(options[, callback])

server.listen(options[, callback])
# Added in: v0.11.14

options <Object> Required. Supports the following properties:
    port <number>
    host <string>
    path <string> Will be ignored if port is specified. See Identifying paths for IPC connections.
    backlog <number> Common parameter of server.listen() functions.
    exclusive <boolean> Default: false
    readableAll <boolean> For IPC servers makes the pipe readable for all users. Default: false
    writableAll <boolean> For IPC servers makes the pipe writable for all users. Default: false
callback <Function> Common parameter of server.listen() functions.
Returns: <net.Server>

关于javascript - Node.js 似乎忽略了我给出的 IP 地址,而是使用 localhost 打开服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50655992/

相关文章:

javascript - 如何在不改变线长的情况下 reshape 多边形

node.js - 同时解决多个promise后如何返回数据?

security - 如何确保传递给 react 的角色?

c# - 更改 Entity Framework 连接字符串到服务器

javascript - 将 json 对象的不同字段的值合并到单个数组中

javascript - 如果文件连续包含多个数据,并且使用 pipeline(|) fs 模块分隔这些数据,如何读取文本文件?

node.js - node express es6 sinon stub 中间件不工作

javascript - 如何确保浏览器和 Node.js 的 JavaScript 库的兼容性

mongodb - 如何关闭 Meteor Mongo?

javascript - 集成非 Angular 代码?