我使用 ngrok 将本地服务器公开到互联网,我为此编写了以下代码:
const ngrok = require('ngrok')
ngrok.connect({
proto: 'http',
addr: 3000,
authtoken: '<my-token>',
}).then(url => console.log(url))
api端点/webhook的触发器是一个POST请求,它在请求对象中发送一些数据。当我访问 http://localhost:4040 检查原始请求的日志时,我可以看到本地应用程序所需的数据。但也许 ngrok 修改了原始请求对象,并且没有将原始 POST 数据转发到我的应用程序。 有什么解决办法吗?
如果您在 localhost:4040 日志中看到数据,则表明它正在访问您的应用程序。
除非您告诉我们,否则我们不会删除/修改请求中的字段或参数。
~ ngrok 员工
我通过添加以下内容修复了我的问题:
app.use(bodyParser.urlencoded({ extended: true }))
对于 Express.js 我发现了这个决定:
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
感谢菲利普·亚当森和杰里米·卡尼