Linux的nodejsrest服务只工作localhost

我正在开发一个REST API与节点js在Linux上。 这是我的第一个示例代码来尝试,如果一切正常工作:

'use strict'; var express = require("express"); var app = express(); var port = process.env.PORT || 8080 ; app.listen(port, "127.0.0.1", function(){ console.log("Express server is listening on port ", port); }); 

我已经尝试调用本地主机:8080到Linux服务器,并正常工作。 如果我尝试通过外部IP调用服务器的IP与此端口的快递服务器没有响应。 有关于此的任何帮助? 谢谢

您设置为“ 127.0.0.1 ”的app.listen() api的第二个参数是主机名。 这将导致节点只侦听请求域中匹配该主机名的请求。

这是一个可选参数。

也许试试api的app.listen(port, callback)forms?

 app.listen(port, function () { console.log("Express server is listening on port ", port); }); app.get('/', function (req, res) { res.send('Hello world!') }); 

或者,如果您不希望服务侦听每个主机名,则可以将[hostname]参数移动到configuration文件中。

请参阅server.listen()文档以更好地了解参数默认行为。

试试这个,让你的应用程序监听所有的networking接口,而不仅仅是localhost:

 app.listen(port, "0.0.0.0", function(){ console.log("Express server is listening on port ", port); });