router.get(
"/send",
async (req, res) => {
client.messages
.list({ limit: 20 })
.then((messages) => messages.forEach((m) => console.log(m.body)));
});
我正在使用twilio,并且想要res.json(m.body)
。问题是,它只适用于第一个元素(正如res.json中所预期的那样(。它可能非常琐碎,但我尝试过push、spread运算符,但无法找到解决方案。
这里是Twilio开发人员的传道者。
您不能对每条消息都呼叫res.json(m.body)
,因为第一次呼叫res.json
Express将完成响应。
试试类似的东西:
router.get(
"/send",
async (req, res) => {
client.messages
.list({ limit: 20 })
.then((messages) => res.json(messages.map((m) => m.body)));
});
这会将消息列表映射到消息主体列表,并使用res.json
返回整个列表。
编辑:
如果您想将m.body
和m.to
的列表保存到稍后使用的变量中,可以执行以下操作:
router.get("/send", async (req, res) => {
client.messages.list({ limit: 20 }).then((messages) => {
const data = messages.map((m) => ({ body: m.body, to: m.to }));
res.json(data);
});
});
在这种情况下,我们将消息映射为具有to
和body
键的对象数组。然后,该数组被分配给data
变量,我们稍后使用该变量返回res.json(data)
。