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;观察到获取了账户和余额,成功实现交互。