简单 Node.js 故障排除 - 从 app.get() 收到误差 404

我正在尝试部署一个 Node.js Heroku 应用程序,该应用程序侦听请求并将编码的字符串简单地记录在控制台中。 注意: 我受限于将数据从程序导出为 JSON,这就是为什么我使用 'req.body' 的原因。


JavaScript

const express = require('express')
const app = express()

app.get('/um', function (req, res) {
  console.log(req.body[message]);
})

app.listen(process.env.PORT || 3000, function () {
  console.log('应用程序正在侦听!')
})

Lua

local httpService = game:GetService('HttpService')
httpService:PostAsync("http://auto-attica.herokuapp.com/um", { "message" = "foo" })

而不是将文本记录到控制台中,我收到了在运行 Lua 程序和 Heroku 控制台上的各种 404 错误。

2017-10-30T00:10:04.826245+00:00 heroku[router]: at=info method=POST path="/um" host=auto-attica.heroku-f35fbe137630 fwd="95.148.67.104" dyno=web.1 connect=1ms service=5ms status=404 bytes=386 protocol=http

以及在 Lua 控制台上

00:16:02.074 - HTTP 404 (HTTP/1.1 404 Not Found)
00:16:02.074 - Stack Begin
00:16:02.075 - Script 'ServerScriptService.myOwnVanilla', Line 8
00:16:02.075 - Stack End

非常感谢您的时间

点赞
用户4273175
用户4273175

从你的代码中,特别是这行代码 req.body[message],我不知道你是如何将那个消息放在里面的。 为什么不在尝试访问那个端点时发送一个响应呢?以下是示例:

const express = require('express')
const app = express();

app.get('/um', function (req, res) {
  res.json({ message: 'Its working' });
});

app.listen(process.env.PORT, function () {
  console.log('App listening!');
});
2017-10-30 00:31:58
用户3874623
用户3874623

你在 express 路由中定义了一个 GET 请求,但是你试图向其发送一个 POST 请求,这就是你的 Heroku 日志所显示的。

2017-10-30T00:10:04.826245+00:00 heroku[router]: at=info method=POST path="/um"
                                                                ^^^^

可以尝试设置一个 POST 处理程序:

app.post('/um', function (req, res) {
  console.log(req.body[message]);
})
2017-10-30 00:37:29