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

使用EthersJS获取区块号时遇'AlchemyProvider未定义'错误求助

问题:ethers.providers.AlchemyProvider 未定义报错

错误详情

const provider = new ethers.providers.AlchemyProvider(
                                      ^

TypeError: Cannot read properties of undefined (reading 'AlchemyProvider')
    at Object.<anonymous> (D:\BlockChain\Ether JS\readBlockchain.js:5:39)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)  
    at node:internal/main/run_main_module:17:47

初始代码

const { ethers } = require("ethers");
require("dotenv").config();

const network = "mainnet";
const provider = new ethers.providers.AlchemyProvider(
  network,
 process.env.ALCHEMY_API_KEY
);

const queryBlockchain = async () => {
  const blockNumber = await provider.getBlockNumber();
  console.log(blockNumber);
};

queryBlockchain();

问题原因

当前使用的ethers版本中,AlchemyProvider并未挂载在ethers.providers对象下,而是单独封装在@ethersproject/providers包内,直接从ethers根对象访问会触发属性未定义的错误。

修复后的代码

直接从@ethersproject/providers包中导入AlchemyProvider即可正常运行:

const { AlchemyProvider } = require("@ethersproject/providers");
require("dotenv").config();

const network = "mainnet";

const provider = new AlchemyProvider(network, process.env.ALCHEMY_API_KEY);

const queryBlockchain = async () => {
  const blockNumber = await provider.getBlockNumber();
  console.log(blockNumber);
};

queryBlockchain();

内容的提问来源于stack exchange,提问作者Asir Shahriar Roudra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:20:47