在大多数时候,我在Linux上运行项目是公开的,没有麻烦。但是现在我尝试在Windows上运行项目也是public。 I created Windows防火墙规则。当我尝试打开页面 192.168.0.106:3000 时,我收到错误,该服务器无法正常工作。如何将公共Node.js Express项目配置为公共?
感谢。
this.app.listen(process.env.PORT || 3000, '192.168.0.106', function () {
console.log(chalk.green('Server started with port 3000'));
var os = require('os');
var interfaces = os.networkInterfaces();
var addresses = [];
for (var k in interfaces) {
for (var k2 in interfaces[k]) {
var address = interfaces[k][k2];
if (address.family === 'IPv4' && !address.internal) {
addresses.push(address.address);
}
}
}
console.log(addresses);
});
答案 0 :(得分:0)
第二个参数是您想要侦听的侦听路线。最简单的解决方案是将其设置为0.0.0.0
,以便侦听所有路线。
this.app.listen(process.env.PORT || 3000, '0.0.0.0', function () {
//...
})
以下是http.listen api的文档。但是,当您指定特定的IP地址时,这意味着您只会在该路线上进行侦听。当您尝试以192.168.0.x
回复自己时,您将从另一条路线呼叫它。与127.0.0.1
类似。使用0.0.0.0
收听所有路线。