![](/img/trans.png)
[英]Node.js seems to ignore my IP address i give, instead it uses localhost to open the server
[英]Cannot run my Node.Js app with my machine's IP address, but can with localhost
所以我有一个节点js应用程序设置为侦听我的机器的端口5050:
所以当我去http:// localhost:5050 / myapp我的应用程序加载正常。 我正在使用快速框架,因此我的监听框架工作如下:
var server = app.listen(5050, '0.0.0.0', function () {
console.log("App started on port 5050")
});
我也做了一个netstat(我使用的是Windows 10机器),并且本地没有环回到本地IP地址。
但是当我执行我的机器ip例如。 http://192.168.0.231:5050/myapp我一直得到:无法访问此网站
编辑:我不认为我很清楚
我关闭了防火墙,我试过没有在app.listen中指定IP地址。 我不认为这是代码的问题,因为当我尝试使用一些简单的测试应用程序并尝试使用我的IP地址运行时,这也会超时
尝试使用listen without ip参数
var server = app.listen(5050, function () {
console.log("App started on port 5050")
});
在运行nodejs应用程序时,我也遇到了与您提到的相同的问题。 在我的代码看起来像这样。
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var mongoChat = require('./app/mongo_chat');
var ip = "127.0.0.1";
var port = 3000;
var users = {};
var WhisperChek = false;
var storage=[];
app.use(express.static(__dirname + '/public'));
app.get('/', function (req, res) {
res.sendfile('index.html');
});
//socket connection
io.on('connection', function (socket) {
//console.log('Someone connected!');
mongoChat.mognolizer(io,socket, users, WhisperChek);
function updateNicknames() {
io.emit('nickname', Object.keys(users));
}
//disconnect socket
socket.on('disconnect', function (data) {
if (!socket.Username)return;
delete users[socket.Username];
updateNicknames();
});
});
http.listen(port,ip, function () {
console.log('listening on *:3000');
});
但是,我从代码中删除了var ip="127.0.0.1"
并将listen函数更新为:
http.listen(port, function () {
console.log('listening on *:3000');
});
现在,我的应用程序在localhost上运行,即在localhost:3000
运行,它也运行在我的ipaddress上,即在ipaddress:3000
。 问题在于我们将ip命名为127.0.0.1
它只在localhost上运行,因为我们使用的ipaddress是私有的,它随着网络连接的变化而变化。 检查一下它是否适合您。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.