使用ganache实现Web3js和区块链交互的步骤 及问题解决:Command ‘express’ not found等

Web3js和区块链交互

做一个简单的dapp

1.express安装

sudo npm install express -g

出现问题:Command 'express' not found,

解决:在安装express时增加generator参数:

npm install -g express-generator

成功后使用 express -e MyDapp; cd MyDapp; npm install下载默认

而后 npm start; 浏览器中输入127.0.0.1:3000,出现

Express

Welcome to Express 则成功

2.本地安装web3 sudo npm install web3 -save

而后打开MyDapp文件夹,修改routes文件夹中的index.js为:

var express = require('express');
var router = express.Router();
//这一步是与区块链获取链接
var Web3 = require('web3');
var web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'));
//这一步是获取账户信息输出在控制台中
web3.eth.getAccounts().then(console.log);
// 这一步是把信息输出到网页面上
/* GET home page. */
router.get('/', function(req, res, next) {
web3.eth.getAccounts().then(function(accounts){
var account = accounts[0];
web3.eth.getBalance(account).then(function(balance){
var amount = web3.utils.fromWei(balance,'ether');
res.render('index',{account:account,balance:amount});
})
});
});

module.exports = router;

然后修改app.js文件:

var app = express();在 相应位置补充内容

var ejs = require('ejs');

// view engine setup
app.set('views', path.join(__dirname, 'views')); app.engine('.html', ejs.__express);
app.set('view engine', 'html');

而后在views文件夹下添加index.html:

`
账户余额

复制代码
`   <h1>用户名:<%= account %></h1>
    <h1>余额是:<%= balance %></h1>`


`

修改完毕后可以尝试启动(要在ganache启动的情况下实现交互)npm start

启动成功后连接到127.0.0.1:3000;观察到获取了账户和余额,成功实现交互。

相关推荐
qq_1208409371几秒前
Three.js 性能实战:大场景从 15FPS 到 60FPS 的工程化优化路径
开发语言·前端·javascript
guhy fighting11 分钟前
使用vue-virtual-scroller导致打包报错
前端·javascript·vue.js·webpack
Cecilialana26 分钟前
同域名、同项目、仅 hash 变化,window.location.href 不跳转
前端·javascript
Hello--_--World33 分钟前
DOM事件流与事件委托、判断数据类型、深浅拷贝、对象遍历方式
前端·javascript
threelab1 小时前
Vue3 + Trilab:打造高扩展性三维可视化插件化框架实战指南
javascript·3d·webgl
阿正的梦工坊1 小时前
JavaScript 函数作用域详解——为什么函数外面访问不到里面的变量?
开发语言·javascript
黑臂麒麟1 小时前
React Hooks 闭包陷阱:状态“丢失“的经典坑
javascript·react native·react.js·ecmascript
1314lay_10071 小时前
Vue+C#根据配置文件实现动态构建查询条件和动态表格
javascript·vue.js·elementui·c#
SuperEugene1 小时前
Vue3 前端配置驱动避坑:配置冗余、渲染性能、扩展性问题解决|配置驱动开发实战篇
前端·javascript·vue.js·驱动开发·前端框架
gCode Teacher 格码致知2 小时前
Javascript提高:Math.round 详解-由Deepseek产生
开发语言·javascript