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

如何在Express服务中调用外部API完成返回比特币卢比价格的任务

Express服务调用第三方API实现方案

1. 环境准备

先执行以下命令初始化项目、安装依赖:

  • 初始化npm项目:npm init -y
  • 安装所需依赖:npm install express axios
    这里用axios作为HTTP请求库,比Node内置的http模块写法更简洁,适合新手快速实现。

2. 编写服务代码

在项目根目录新建index.js文件,写入以下代码:

const express = require('express');
const axios = require('axios');
const app = express();
const PORT = 3000;

// 定义USD转INR的汇率,可根据实时汇率更新
const USD_TO_INR_RATE = 83.2; // 示例汇率,实际使用可对接汇率API获取实时值

app.get('/api/prices', async (req, res) => {
  try {
    // 调用第三方公开API获取比特币价格
    const thirdPartyRes = await axios.get('https://api.coindesk.com/v1/bpi/currentprice.json');
    const bpiData = thirdPartyRes.data.bpi;

    // 提取所有币种价格,转换为卢比后格式化为两位小数的字符串,存入数组
    const inrPrices = Object.values(bpiData).map(item => {
      // 先统一转为USD计价,再转成INR
      const usdPrice = item.rate_float / (item.code === 'USD' ? 1 : item.rate_float / bpiData.USD.rate_float);
      const inrPrice = usdPrice * USD_TO_INR_RATE;
      return inrPrice.toFixed(2);
    });

    // 返回要求格式的JSON
    res.json(inrPrices);
  } catch (error) {
    // 异常处理,避免服务崩溃
    console.error('调用第三方接口失败:', error.message);
    res.status(500).json({ error: '获取价格失败' });
  }
});

app.listen(PORT, () => {
  console.log(`服务运行在 http://localhost:${PORT}`);
});

3. 运行测试

  • 执行命令启动服务:node index.js
  • 打开Postman,发起GET请求到http://localhost:3000/api/prices,即可得到格式为["xx.xx", "xx.xx", "xx.xx"]的响应。

核心逻辑说明

在Express中调用第三方API的核心是在路由处理函数中发起HTTP请求,你可以根据需求选择不同的请求方案:

  • 不想安装额外依赖可以用Node内置的https模块,不过需要自己处理响应拼接、Promise封装
  • 推荐新手用axios或者node-fetch这类封装好的请求库,天生支持Promise,和async/await搭配写起来逻辑更清晰,不用处理复杂的回调。
    如果需要更准确的实时汇率转换,可以对接公开的汇率API获取实时的USD转INR汇率替换代码中的固定值即可。

内容的提问来源于stack exchange,提问作者Nandini Patil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:36:00