gpt4 book ai didi

node.js - 使用 Node.js 和 Express 在 Twilio 中请求未定义

转载 作者:太空宇宙 更新时间:2023-11-03 23:26:33 25 4
gpt4 key购买 nike

我创建了一个 webhook 来应答 Twilio 语音调用。

var router = require('express').Router();
var twilio = require('twilio');

router.post("/voice", (request, response) => {
// var fs = require('fs');
// var util = require('util');
// fs.writeFileSync('./request.json', util.inspect(request.body), 'utf-8');
console.log(request.body);
console.log('Call received from ' + request.body.From);
//twimlAnswer();}

Webhook 和连接工作正常,但我正在尝试访问 Twilio 通常在“请求”内提供的一些请求参数(与此示例类似 https://www.twilio.com/docs/tutorials/automated-survey-node-express#responding-to-a-phone-call )

我收到以下日志:

Express server listening on port 3000
undefined
TypeError: Cannot read property 'From' of undefined
at router.post

你知道为什么我无法正确访问请求吗?我发现的大多数示例在访问 request.body 时都没有问题...

谢谢

最佳答案

这里是 Twilio 开发者布道者。

Twilio sends webhook requests as URL encoded form parameters 。因此,要在 Express 中读取请求正文,您需要包含 Body Parser 模块并将应用设置为使用 urlencoded 解析器。有点像这样:

var router = require('express').Router();
var twilio = require('twilio');
var bodyParser = require('body-parser');

router.use(bodyParser.urlencoded({ extended: false }));

router.post("/voice", (request, response) => {
console.log('Call received from ' + request.body.From);
// respond to webhook
});

关于node.js - 使用 Node.js 和 Express 在 Twilio 中请求未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43530122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com