我写了一个小 node .js应用程序,使用connect,提供一个网页,然后定期发送更新.它还接受用户的观察并将其记录到磁盘文件中.

只要我在本地主机上,它就可以正常工作,但我无法让同一内联网上的其他计算机看到它.我使用的是端口3000,但改为端口8080或80没有帮助.

以下是我用来设置连接的代码:

var io = require('socket.io'),
  connect = require('connect');

var app = connect().use(connect.static('public')).listen(3000);
var chat_room = io.listen(app);

如上所述,我try 将端口号更改为8080或80,但没有发现任何差异,因此我不认为这是防火墙问题(但我可能错了).在阅读了关于HTTP的类似问题后,我还考虑过在listen()方法中添加0.0.0.0,但listen()似乎不接受IP掩码参数.

推荐答案

最有可能的情况是,服务器套接字绑定到环回IP地址127.0.0.1,而不是"所有IP地址"符号IP 0.0.0.0(请注意,这不是网络掩码).要确认这一点,请运行sudo netstat -ntlp(如果您在linux上)或netstat -an -f inet -p tcp | grep LISTEN(OSX),并判断您的进程绑定到哪个IP(查找带有":3000"的行).如果你看到"127.0.0.1",那就是问题所在.通过向listen调用传递"0.0.0.0"来修复它:

var app = connect().use(connect.static('public')).listen(3000, "0.0.0.0");

Node.js相关问答推荐

如何解决无法获得本地颁发者证书的问题

@nuxtjs/站点 map 错误提示:找不到包';NitroPack';

当FastifyJS向客户端发送响应时,apache 不会将其发送给他

编辑Mongoose中的对象嵌套数组

如何将Node.js与Nuxt.js一起使用?

Express无法发布

Node.js分页返回空数组

用于SLACK命令返回json而不是文本的AWS lambda函数

条件内的表达式

如何从谷歌云中部署的应用程序连接到mongoDB Atlas?

在 NodeJS 中使用 post 时出现错误 500TypeError: 无法解构 'req.body' 的属性 'name',因为它未定义

使用NodeJS通过服务账号列出Google Workspace用户

Cloudflare 522 错误 - javascript 客户端连接到 node 服务器

Fly.io 启动问题:无法从源获取图像或构建错误:构建错误:连接期间出错:发布...

如何让 vscode 假设一个 node.js 上下文,以便它不假设 `fetch` 存在?

WSL2 上需要脚本运行的 NPM 包的权限被拒绝

为什么在调用数据库调用时我的参数没有定义?

在 PassportJS 中使用多种本地策略

node.js 示例

mongoose 填充与对象嵌套