如何解决Node.js项目运行时出现Web3 is not defined的报错
错误解决方法
错误根因
你导入web3模块时声明的变量名为web3_utils,但后续实例化时使用了未声明的Web3变量,因此触发未定义报错。
解决步骤
- 第一步:调整web3模块的导入命名,将导入语句修改为规范写法,直接匹配后续实例化的构造函数名:
// 把原来的 const web3_utils = require('web3') 替换为下面的代码 const Web3 = require('web3')
- 第二步:确认你已在项目中安装web3依赖,未安装的话先执行安装命令:
npm install web3 --save - 第三步:修改完成后重新执行
npm run start启动项目即可。
修正后的核心代码示例
require('dotenv').config() const express = require('express') const bodyParser = require('body-parser') const http = require('http') // 修正导入命名 const Web3 = require('web3') const HDWalletProvider = require('@truffle/hdwallet-provider') const moment = require('moment-timezone') const numeral = require('numeral') const _ = require('lodash') const axios = require('axios') // SERVER CONFIG const PORT = process.env.PORT || 5500 const app = express(); const server = http.createServer(app).listen(PORT, () => console.log(`Listening on ${ PORT }`)) // WEB3 CONFIG 现在可以正常实例化 const web3 = new Web3(process.env.RPC_URL)
内容的提问来源于stack exchange,提问作者trosilez
相关产品推荐
相关产品推荐

