Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Typeforms webhook解析原始正文时出现问题_Javascript_Express_Post_Webhooks_Body Parser - Fatal编程技术网

Javascript 从Typeforms webhook解析原始正文时出现问题

Javascript 从Typeforms webhook解析原始正文时出现问题,javascript,express,post,webhooks,body-parser,Javascript,Express,Post,Webhooks,Body Parser,每当有人点击嵌入式调查的submit按钮时,我都会使用Typeform将结果生成为JSON,当我使用类似的服务时,我得到的结果与文档描述的完全一样,但是当我通过命令使用ngrok公开我的本地应用程序时 ngrok http 3000 然后将底层路由设置为webhook目标URL,得到不满意的输出。这是快车的路线: app.post('/receiveWebhook', function(req, res){ console.log(req); console.log(req.t

每当有人点击嵌入式调查的submit按钮时,我都会使用Typeform将结果生成为JSON,当我使用类似的服务时,我得到的结果与文档描述的完全一样,但是当我通过命令使用ngrok公开我的本地应用程序时

ngrok http 3000
然后将底层路由设置为webhook目标URL,得到不满意的输出。这是快车的路线:

app.post('/receiveWebhook', function(req, res){
    console.log(req);
    console.log(req.title);
    res.send(200);
});
这将生成服务器端输出:

IncomingMessage {
   _readableState: 
       ReadableState {
           objectMode: false,
           highWaterMark: 16384,
           buffer: [],
           length: 0,
           pipes: null,
           pipesCount: 0,
           flowing: null,
           ended: false,
           endEmitted: false,
           reading: false,
           sync: true,
           needReadable: false,
           emittedReadable: false,
           ....
      body: {},
      params: {},
      ... 
      (can post the entire contents on Dropbox if comments think it is necessary)
当我使用邮递员到达路线时,有趣的是,原始身体中唯一的输出是:

{"title": "Test"}
我在上面发布的Express route中的console.log语句未对此进行验证


有没有想过为什么我会通过RequestBin接收有用的数据,而不是在我的本地应用程序的实际服务器端接收这些数据?

您似乎错误地使用了请求(在express中)。typeformwebhook将结果作为请求的主体,因此您需要使用
主体解析器
来获取正确的数据

请看这里:

重要位:

包含体解析器

var-bodyParser=require('body-parser')

将其用作中间件

app.use(bodyParser.json())

使用
req.body
使用数据,例如:

app.post('/receive_results',函数handleReceiverResults(请求、回复){
log('Got results!');
var body=请求body;
saveAnswers(body.token、body.answers、body.uid);
res.send('Ok!');
});


通过此设置,
req.body
应包含提交的结果。如果仍然不起作用,请告诉我

您似乎错误地使用了请求(在express中)。typeformwebhook将结果作为请求的主体,因此您需要使用
主体解析器
来获取正确的数据

请看这里:

重要位:

包含体解析器

var-bodyParser=require('body-parser')

将其用作中间件

app.use(bodyParser.json())

使用
req.body
使用数据,例如:

app.post('/receive_results',函数handleReceiverResults(请求、回复){
log('Got results!');
var body=请求body;
saveAnswers(body.token、body.answers、body.uid);
res.send('Ok!');
});

通过此设置,
req.body
应包含提交的结果。如果仍然不起作用,请告诉我