所以我设置了一个节点js app来监听我机器的端口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地址运行时,这也会超时
答案 0 :(得分:0)
尝试使用listen without ip parameter
var server = app.listen(5050, function () {
console.log("App started on port 5050")
});
答案 1 :(得分:0)
在运行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是私有的,它随着网络连接的变化而变化。检查一下它是否适合你。