gpt4 book ai didi

javascript - 为什么只能从 127.0.0.1/localhost 访问 Node.js 应用程序?

转载 作者:数据小太阳 更新时间:2023-10-29 04:03:06 25 4
gpt4 key购买 nike

我正要教我的 friend 介绍 Node ,但后来我想知道为什么来自 nodejs.org 的这段代码:

var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(80, '127.0.0.1');
console.log('Server running at http://127.0.0.1:80/');

当托管时,它不能从公共(public) ip 访问(但它仍然可以从本地主机访问)而这段来自 express.js 的代码:

var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');

var app = express();

// all environments
app.set('port', process.env.PORT || 80);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}

app.get('/', routes.index);
app.get('/users', user.list);

http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});

确实如此。请帮助我修改 nodejs 主页上的基本代码,使其可以从公共(public) ip 访问,以便我可以以非常基本的方式向我的 friend 演示。 express.js 生成的新代码运行良好。

我在这里错过了什么?

最佳答案

根据 server.listen文档,

Begin accepting connections on the specified port and hostname. If the hostname is omitted, the server will accept connections directed to any IPv4 address (INADDR_ANY).

要使其接受来自所有 ips (0.0.0.0) 的连接,请将其更改为如下所示

}).listen(80); // No explicit ip, defaults to all ips 0.0.0.0
console.log('Server running in port 80');

关于javascript - 为什么只能从 127.0.0.1/localhost 访问 Node.js 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22165010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com