Node.js接入预警通知接口:axios异步发送示例

Node.js在BFF层、中台服务与前端全栈项目中使用广泛。用Node.js接入互亿无线预警通知接口,可以在服务异常、定时任务、Webhook接收等场景异步下发短信或语音。本文给出基于axios的异步示例,配合async/await写法,适…

Node.js在BFF层、中台服务与前端全栈项目中使用广泛。用Node.js接入互亿无线预警通知接口,可以在服务异常、定时任务、Webhook接收等场景异步下发短信或语音。本文给出基于axios的异步示例,配合async/await写法,适合现代Node项目。

Node.js接入的接口与参数

短信接口 https://api.ihuyi.com/sms/Submit.json ,语音接口 https://api.ihuyi.com/voice/vm 。参数为account、password、mobile、content,表单方式POST提交。

  • account:APIID,password:APIKEY;
  • mobile:接收手机号;
  • content:通知内容;
  • 响应JSON中code=2表示提交成功。

Node.js axios发送示例

先安装axios:npm install axios,然后封装异步发送函数:

const axios = require("axios");

async function sendSms(mobile, content) {
  try {
    const res = await axios.post(
      "https://api.ihuyi.com/sms/Submit.json",
      new URLSearchParams({
        account: "你的APIID",
        password: "你的APIKEY",
        mobile: mobile,
        content: content,
      }).toString(),
      { headers: { "Content-Type": "application/x-www-form-urlencoded" }, timeout: 8000 }
    );
    return res.data; // code=2为提交成功
  } catch (e) {
    console.error("预警发送失败", e.message);
  }
}

sendSms("13800138000", "定时任务backup_db执行失败,请运维检查数据库备份");

用URLSearchParams构造表单体,可正确处理中文编码。

Node.js接入注意事项

  • 异步调用要加try/catch,发送失败不能影响主业务流程;
  • 设置timeout,避免接口挂起导致事件循环堆积;
  • 密钥通过环境变量process.env注入;
  • 语音接口地址换成/voice/vm即可,参数不变。

带超时与错误处理的axios示例

Node.js后端常用axios发HTTP请求。下面这个示例加上了超时、异常捕获与返回码判断,可直接放进Express或Koa路由:

const axios = require("axios");

async function sendSms(mobile, content) {
  try {
    const resp = await axios.post(
      "https://api.ihuyi.com/sms/Submit.json",
      new URLSearchParams({
        account: process.env.IHUYI_APIID,
        password: process.env.IHUYI_APIKEY,
        mobile: mobile,
        content: content,
      }),
      { timeout: 10000 }
    );
    if (resp.data.code === 2) {
      console.log("提交成功", resp.data.smsid);
      return resp.data;
    }
    console.warn("提交失败", resp.data.code, resp.data.msg);
    return resp.data;
  } catch (e) {
    console.error("请求异常", e.message);
    return null;
  }
}

sendSms("13800138000", "Node服务进程异常退出,请运维查看");

依赖与运行说明

示例依赖axios,在项目目录执行npm install axios即可运行。account与password从process.env读取,避免写进代码仓库。Node 18以上也可使用内置fetch,逻辑一致。

常见报错排查

  • ECONNRESET或ETIMEDOUT:检查服务器出网与代理配置,云服务器注意安全组放行出站443;
  • 返回code非2:打印resp.data,按msg定位;
  • 中文乱码:用URLSearchParams构造body,axios会自动按UTF-8编码;
  • 回调处理:在Express里app.post("/notify/callback", ...)接收推送即可。

Node服务几行代码就能具备告警推送能力。前往注册免费试用获取密钥。

立即开始,免费体验

新用户注册即送免费测试额度,3分钟快速接入,专属客服全程指导

免费试用 →