如何使用 npm 安装和使用
2026-04-21
嘿,朋友们!今天我想和你聊聊Web3.js以及它是如何帮助我们和以太坊智能合约进行互动的。或许你听说过这些名词,但可能还不太明了它们到底是什么。别担心,我会从最基础的讲起,带你一步步理解,甚至能让你尝试自己写点小代码。
Web3.js其实就是一套JavaScript库,专门用来和以太坊区块链进行交互的。相信我,你一定是见过一些使用以太坊网络的应用,比如去中心化金融(DeFi)项目、NFT平台等等。Web3.js就是这些应用和以太坊之间的桥梁。它让开发者可以像调用普通API一样方便地调用智能合约、发送交易、查询区块等等。
NPM,听起来有点神秘吧?其实它就是Node.js的包管理工具,允许我们方便地安装和管理JavaScript库。用NPM安装Web3.js有几个好处:
在我们开始之前,确保你已经安装了Node.js和NPM。如果你还没装,可以访问Node.js的官网下载安装包。安装完成后,在终端中输入以下命令来检查是否安装成功:
node -v npm -v
如果你看到了版本号,恭喜你,准备工作成功!
现在我们来安装Web3.js。打开你的终端,创建一个新的项目文件夹,进入该文件夹后运行下面的命令:
npm init -y npm install web3
这个“npm init -y”是初始化一个新的npm项目,会生成一个package.json文件,后面的“npm install web3”就是安装Web3.js库。安装完成后,你的项目目录下会多一个node_modules文件夹,里面就是我们刚刚安装的库。
接下来我们来写点代码,看看Web3.js到底能做些啥。你可以新建一个index.js文件,然后在里面输入如下代码:
const Web3 = require('web3');
const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID');
async function main() {
const block = await web3.eth.getBlock('latest');
console.log(block);
}
main();
别忘了把“YOUR_INFURA_PROJECT_ID”替换成你自己的Infura项目ID。你可以在Infura官网注册一个账号并创建项目,获取自己的ID。
这一段代码看起来简单,但它实际上做了很多事情哦!我们首先引入了Web3库,然后实例化了一个Web3对象,传入了Infura提供的以太坊主网URL。在main函数里,我们用web3.eth.getBlock方法获取最新区块的信息,然后输出到控制台。这其实就是和以太坊网络交互的第一步。
你会发现我们用到了async和await。这是JavaScript中处理异步操作的好帮手。区块链的操作通常需要一些时间,所以我们用async函数来确保代码按顺序执行,不会因为异步而把结果搞乱。可以想象一下,如果没有这一层保护,我们可能就会输出一个尚未完成的结果,那场面可不太好看。
有了基础知识后,我们可以尝试获取一些以太坊地址的信息。换句话说,如何获取一个特定地址的以太币余额。代码如下:
async function getBalance(address) {
const balance = await web3.eth.getBalance(address);
console.log(`余额为:${web3.utils.fromWei(balance, 'ether')} ETH`);
}
getBalance('你的以太坊地址');
在函数中,我们使用web3.eth.getBalance方法获取某个地址的余额,然后使用web3.utils.fromWei方法将结果从Wei转化为以太币,这样更容易阅读。记得把‘你的以太坊地址’替换成你想查询的实际地址喔!
说到交易,这可真是区块链的精髓。通过Web3.js,我们也可以发送交易。不过,发送交易需要私钥,那么您要小心,千万别把私钥泄露出去!下面的代码是发送交易的示例:
async function sendTransaction() {
const transaction = {
from: '你的地址',
to: '接收地址',
value: web3.utils.toWei('0.01', 'ether'),
gas: 2000000,
};
const signedTransaction = await web3.eth.accounts.signTransaction(transaction, '你的私钥');
const receipt = await web3.eth.sendSignedTransaction(signedTransaction.rawTransaction);
console.log(`交易哈希:${receipt.transactionHash}`);
}
sendTransaction();
在这里我们构建了一个交易对象,并使用web3.eth.accounts.signTransaction来对其进行签名。随后,再用web3.eth.sendSignedTransaction发送该交易。别紧张,操作非常简单,但一定要小心哦!
通过今天的分享,我希望你能对Web3.js和以太坊有一个初步的认识。用NPM安装Web3.js非常方便,更重要的是,借助这个库,我们可以轻松与以太坊网络交互。虽然有一些概念可能乍一看会让人觉得复杂,但只要我们一步一步来,多试试,发现其实这些工具都挺友好的。
如果你有任何问题或者心得,记得留言呀!我们一起探讨!同时,如果你对区块链这个领域感兴趣,可以多追踪一些相关资讯,随着技术进步,未来会有更多的惊喜等待我们发掘!
好了,今天就聊到这里,希望你能在Web3的世界中找到乐趣!