简单的Node.js疑难解答 – 从app.get()接收404
我正在尝试部署一个node.js Heroku应用程序,该应用程序侦听请求并简单地将编码的stringlogging到控制台。 注意:我仅限于从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('App listening!') })
LUA
local httpService = game:GetService('HttpService') httpService:PostAsync("http://auto-attica.herokuapp.com/um", { "message" = "foo" })
而不是logging文本到控制台。 我在运行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
非常感谢您的宝贵时间
您正在快速路由中定义一个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]); })
从上面的代码,特别是这行代码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!'); });
- 是否有可能有一个单独的devDependencies node_modules文件夹?
- 如何避免一个heroku请求超时?
- 使用CORS与LocomotiveJs Rest API。 适用于本地机器,但不适用于Amazon或Heroku
- 无法使用nodemailer和Node.js发送邮件
- 如何设置Heroku的时区
- Heroku上的node-schedule(不是Heroku的Scheduler插件)
- 遇到主机名/ IP不匹配Heroku上的证书的altnames
- 在heroku上集成博客和node.js应用程序
- 是否有可能部署一个Node.js应用程序到Heroku没有一个networkingdynamic?