Node.js22.x的AWS Lambda调用Twilio报错“Twilio is not a function”排查
问题解决方案:Twilio is not a function 错误处理
问题根源:Twilio v5的ES模块中,创建客户端的核心函数是默认导出项。你使用
import * as Twilio导入的是包含所有导出内容的对象,直接调用这个对象自然会触发“不是函数”的错误。修正方案:
使用默认导入语法(推荐):
import Twilio from "twilio";之后可以正常调用
Twilio()创建客户端。保留原导入方式,手动获取默认导出:
import * as Twilio from "twilio"; const twilioClient = Twilio.default(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);
修正后的完整代码示例
import Twilio from "twilio"; const twilioClient = Twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN); export const handler = async (event, context) => { try { const message = await twilioClient.messages.create({ body: "你的短信内容", from: process.env.TWILIO_PHONE_NUMBER, to: event.targetPhone }); return { statusCode: 200, body: JSON.stringify({ success: true, messageSid: message.sid }) }; } catch (err) { return { statusCode: 500, body: JSON.stringify({ success: false, error: err.message }) }; } };
内容的提问来源于stack exchange,提问作者Waleed93
相关产品推荐
相关产品推荐

