You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Alexa技能的Node.js代码中导入axios模块

在Alexa Skills Kit Node.js技能中导入使用axios的实现指引

第一步:安装axios依赖

根据你的开发方式选择对应操作:

  • 本地开发后部署(含AWS Lambda部署、Alexa托管部署打包上传的场景)
    在项目根目录(package.json所在目录)执行终端命令:
    npm install axios
    执行完成后axios会自动写入package.json的dependencies字段,打包部署时会自动包含该依赖。
  • Alexa开发者控制台在线编辑代码
    直接在在线编辑器的文件列表中打开package.json,在dependencies配置项中新增一行:
    "axios": "^1.6.0"
    版本号可替换为当前axios的稳定版本,保存后点击部署,控制台会自动安装对应依赖。

第二步:代码中导入axios

根据你项目使用的模块化规范选择对应导入方式:

  • CommonJS规范(Alexa Node.js运行时默认支持,绝大多数场景用这个写法即可)
    const axios = require('axios');
    
  • ES Module规范(仅当你的package.json中配置了"type": "module"时使用)
    import axios from 'axios';
    

实际技能中使用示例

以下是在意图处理逻辑中调用axios请求第三方接口的完整示例:

const Alexa = require('ask-sdk-core');
const axios = require('axios');

// 示例:查询天气的意图处理
const GetWeatherIntentHandler = {
  canHandle(handlerInput) {
    return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
      && Alexa.getIntentName(handlerInput.requestEnvelope) === 'GetWeatherIntent';
  },
  // 异步处理必须加async关键字
  async handle(handlerInput) {
    let speakContent = '暂时无法获取天气信息';
    try {
      // 调用第三方接口必须加await等待响应返回
      const response = await axios.get('https://你的第三方接口地址', {
        params: {
          city: '上海'
        }
      });
      speakContent = `当前上海的气温是${response.data.temp}摄氏度`;
    } catch (error) {
      console.error('接口请求失败:', error);
    }
    return handlerInput.responseBuilder
      .speak(speakContent)
      .getResponse();
  }
};

// 后续的Handler注册、出口导出等逻辑按原有技能逻辑编写即可

注意事项

  • 所有axios异步请求必须搭配async/await使用,否则会出现接口还没返回,技能就已经结束响应的问题
  • 若技能部署在AWS Lambda上,需确保Lambda执行角色开通了外网访问权限,否则axios的公网请求会被阻断
  • 不要设置过长的axios超时时间,Alexa技能的响应超时限制为8秒,超过该时间未返回结果会触发技能报错

内容的提问来源于stack exchange,提问作者Gopalakrishnan Iyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 23:06:01