express 和 Moralis 代币价格 API 未在控制台中获取 json 数据

问题描述 投票:0回答:1

我一直在关注来自 Moralis web3 (youtube) 的 视频链接,意思是当我需要使用代币价格 Moralis API 获取数据时,我陷入了困境。我希望在打印时将价格详细信息打印在控制台中

npm start

控制台中的预期输出是:

{
  nativePrice: {
    value: '13851123944545175839',
    decimals: 18,
    name: 'Ether',
    symbol: 'ETH'
  },
  usdPrice: 23176.58785953117,
  exchangeAddress: '0x1f98431c8ad98523631ae4a59f267346ea31f984',
  exchangeName: 'Uniswap v3'
}

在本地主机中,它应该返回空的 json 对象“{}”,但是当我在本地主机中打开相同的对象时,它显示:

Cannot GET /tokenPrice

我尝试了道德文档中提供的不同方法,它工作正常,但我做了与引发错误的教程相同的操作:

const express = require("express");
const Moralis = require("moralis").default;
const { EvmChain } = require("@moralisweb3/common-evm-utils");
const app = express();
const cors = require("cors");
require("dotenv").config();
const port = 3001;

app.use(cors());
app.use(express.json());

app.get("./tokenPrice", async (req, res) => {
  const { query } = req;

  const responseOne = await Moralis.EvmApi.token.getTokenPrice({
    address: query.addressOne,
  });

  const responseTwo = await Moralis.EvmApi.token.getTokenPrice({
    address: query.addressTwo,
  });

  console.log(responseOne.raw);
  console.log(responseTwo.raw);

  return res.status(200).json({});
});

Moralis.start({
  apiKey: process.env.MORALIS_KEY,
}).then(() => {
  app.listen(port, () => {
    console.log(`Listening for API Calls`);
  });
});

我还想知道 {query} 和 addressOne 在这里意味着什么,因为我从未在代码中像以前那样声明过任何 var。

  • 我想知道{query}和addressOne是什么,是express js属性还是moralis
  • 想知道错误发生的原因和位置以及解决方案。
api express web3js moralis
1个回答
0
投票

对于

addressOne
addressTwo
,这些是您的请求中使用的查询参数。如果您查看视频,您可以看到他展示了请求应该是什么样子的示例:

http://localhost:3001/tokenPrice?addressOne=0x51491...cf986ca&addressTwo=0xdac17f...6994597

并使用您想要获取价格的代币的 2 个地址。您确实可以扩展逻辑以使用更多地址

在 45:00 分钟的视频中,您可以看到代码应该是什么样子。请确保您完成代码以使其正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.