node.js - Linux nodejs 休息服务只工作本地主机

标签 node.js linux rest

我正在 Linux 上使用 Node js 开发 REST API。 如果一切正常,这是我尝试的第一个示例代码:

'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);
});

我已经尝试将 localhost:8080 调用到 linux 服务器并且工作正常。 如果我尝试通过外部 IP 使用此端口调用服务器的 trhe IP,则 express 服务器没有响应。 有什么帮助吗? 谢谢

最佳答案

app.listen() 的第二个参数 api ,您设置为“127.0.0.1”的是主机名。这将导致 Node 仅监听来自请求域的与该主机名匹配的请求。

这是一个可选参数。

也许可以尝试 app.listen(port, callback) 形式的 api?

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

app.get('/', function (req, res) {
  res.send('Hello world!')
});

或者,如果您不希望您的服务监听每个 主机名,您可以将 [hostname] 参数移至配置文件。

参见 server.listen()更好地了解参数默认行为的文档。

关于node.js - Linux nodejs 休息服务只工作本地主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43015803/

相关文章:

node.js - 如何在 Raspberry Pi 上安装最新版本的 node.js?

Django 测试休息框架 : APIRequestFactory vs APIClient

javascript - Mongoose + Node.js,Object.assign(从数据库返回的数据的副本)显示附加数据

javascript - 如何使用 puppeteer 检查 div 是否具有特定的类?

node.js - Stripe Direct Charge 不录音

c - "fork()"后printf异常

linux - bash如何删除除一个目录外的所有多个扩展名的文件

c - 需要编辑哪些文件才能将新用户添加到 ubuntu?

java - 访问 REST Web 服务的摘要式身份验证

python - Django 内部 API 客户端/服务器身份验证与否?