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


http://www.ppmy.cn/ops/33290.html

相关文章

【C++ 问题总结】

C问题总结 C问题解决1.C两种实用方式解决clion不能运行多个main文件1.下载插件1.1下载插件&#xff0c;C/C Single File Execution1.2删除CMakeLists.txt文件中的add_executable()1.3在新建的cpp文件中&#xff0c;右击 --> 点击Add executable for single c/cpp file -->…

leetcode870.优势洗牌

题目描述&#xff1a; 给定两个长度相等的数组 nums1 和 nums2&#xff0c;nums1 相对于 nums2 的优势可以用满足 nums1[i] > nums2[i] 的索引 i 的数目来描述。 返回 nums1 的任意排列&#xff0c;使其相对于 nums2 的优势最大化。 示例一&#xff1a; 输入&#xff…

docker安装rabbitmq

1.下载docker镜像 docker pull rabbitmq2.运行以下命令以启动RabbitMQ容器&#xff1a; docker run -d -p 15672:15672 -p 5672:5672 \--restartalways \-e RABBITMQ_DEFAULT_VHOSTmy_vhost \-e RABBITMQ_DEFAULT_USERadmin \-e RABBITMQ_DEFAULT_PASS123456 \--name rabbit…

Android AOSP探索之Ubantu下Toolbox的安装

文章目录 概述安装Toolbox解决运行的问题 概述 由于最近需要进军android的framework,所以需要工具的支持&#xff0c;之前听说江湖上都流传source insight,我去弄了一个破解版&#xff0c;功能确实强大&#xff0c;但是作为多年android开发的我习惯使用android studio。虽然使…

跟我学C++中级篇——const和constexpr的使用

一、从例程介绍 已经不同的篇章里介绍和分析过const及constexpr&#xff0c;特别对于后者&#xff0c;从c11到c14直到c17甚至以后&#xff0c;功能都不断的在完善。那么这么多复杂的应用如何搞清楚呢&#xff1f;下面先从代码看起&#xff1a; #include <iostream>void…

STM32 串口IDLE接收空闲中断+DMA

参考 http://t.csdnimg.cn/fAV38 1.基础知识 STM32 IDLE 接收空闲中断 功能&#xff1a; 在使用串口接受字符串时&#xff0c;可以使用空闲中断&#xff08;IDLEIE置1&#xff0c;即可使能空闲中断&#xff09;&#xff0c;这样在接收完一个字符串&#xff0c;进入空闲状态时&…

51单片机软件环境安装

keli5的安装 把CID放到破解程序中 破解程序会给一串数字然后填到那个框中 驱动程序的安装 安装完了以后 设备管理器会出现这个 同时c盘会出现这个文件夹

Dockerfile自定义镜像

镜像结构: 语法指令: 这里是这个案例dockerfile里边的指令: 指定基础镜像FROM ubuntu:16.04配置环境变量&#xff0c;JDK的安装目录ENV JAVA_DIR/usr/local拷贝jdk和java项目的包COPY ./jdk8.tar.gz $JAVA_DIR/COPY ./docker-demo.jar /tmp/app.jar安装JDKRUN cd $JAVA_DIR \&…

PHP医疗不良事件上报系统源码 AEMS开发工具vscode+ laravel8 医院安全(不良)事件报告系统源码 可提供演示

PHP医疗不良事件上报系统源码 AEMS开发工具vscode laravel8 医院安全&#xff08;不良&#xff09;事件报告系统源码 可提供演示 医院安全不良事件报告系统&#xff08;AEMS&#xff09;&#xff1b;分为外部报告系统和内部报告系统两类。内部报告系统主要以个人为报告单位&…

堆栈打印跟踪Activity的启动过程(基于Android10.0.0-r41),framework修改,去除第三方app的倒计时页面

文章目录 堆栈打印跟踪Activity的启动过程(基于Android10.0.0-r41)&#xff0c;framework修改&#xff0c;去除第三方app的倒计时页面1.打印异常堆栈2.去除第三方app的倒计时页面3.模拟点击事件跳过首页进入主页 堆栈打印跟踪Activity的启动过程(基于Android10.0.0-r41)&#x…

飞腾FT1500A-16 6U VPX高性能密集计算刀片

飞腾FT1500A-16 6U VPX高性能密集计算刀片 一款高性能6U VPX单板显示计算机&#xff0c;产品遵循OpenVPX Vita65规范。采用目前主流的GPGPU架构&#xff0c;其板载一颗天津飞腾公司的FT1500A-4四核处理器&#xff0c;并搭配AMD?公司的高性能嵌入式显卡Radeon? E8860 GPU。E88…

netbeans中unpacking index for central Repository是在做什么

unpacking index for central Repository这个提示通常出现在NetBeans IDE初始化或更新时,它表示NetBeans正在解压缩和处理中央软件仓库的索引文件。这是一个必要的步骤,因为NetBeans需要访问这个仓库来获取各种库、插件和框架的元数据信息。 具体来说,这个过程包括以下几个步骤…

【前端学习——css】css实现给背景的图片加模糊

我在制作自己的博客的时候&#xff0c;打算做个封面&#xff0c;封面用半透明颜色盖住了预览图&#xff0c;上面印上了文字&#xff0c;但背景图太乱了&#xff0c;所以打算给背景加模糊效果。 效果 方法 主要就是利用这个属性 backdrop-filter: blur(5px);属性很简单&#x…

MyBatis 核心配置讲解(下)

大家好&#xff0c;我是王有志&#xff0c;一个分享硬核 Java 技术的互金摸鱼侠。 我们书接上回&#xff0c;继续聊 MyBatis 的核心配置&#xff0c;我们今天分享剩下的 5 项核心配置。 不过正式开始前&#xff0c;我会先纠正上一篇文章 MyBatis 核心配置讲解&#xff08;上&…

Ei / Scopus | 2024 年第 14 届软件技术与工程国际会议(ICSTE 2024)

2024 年第 14 届软件技术与工程国际会议&#xff08;ICSTE 2024&#xff09;将于2024年8月16-18日在中国澳门举行。技术引领&#xff0c;工程卓越&#xff1b;全球视野&#xff0c;中国智慧。ICSTE 2024的召开&#xff0c;不仅有助于推动软件技术与工程领域的创新与发展&#x…

Linux网络服务部署YUM仓库

目录 一.YUM仓库简介 二.YUM实现过程 三.YUM配置文件 1.主配置文件 2.仓库设置文件 3.日志文件 四.YUM命令详解 1.查询 2.yum安装升级 3.软件卸载 五.YUM搭建仓库的方式 1.搭建本地YUM仓库 2.搭建阿里云仓库&#xff08;http外网环境搭建&#xff09; 3.内网环境下…

Scala 补充 正则、异常处理...

Scala 补充 正则、异常处理、类型信息处理 基于前几篇文章 (Scala介绍与环境搭建、Scala 第一篇 基础篇、Scala 第二篇 算子篇、Scala 第三篇 OOP篇) 补充 一、正则 1、匹配2、替换3、分割4、分组5、练习 二、异常处理三、类 型信息处理 一、正则 1、匹配 简单匹配 // 判断…

C#知识|上位机项目登录窗口设计(实例)

哈喽,你好啊,我是雷工! 本节通过练习实例学习上位机项目UI设计方法与技巧,以下为学习笔记。 01 界面尺寸 1.1、对于客户对界面有要求的,则需要按照客户要求设计和开发; 1.2、对于客户没有提出要求的情况,则需要前期调研客户对软件界面的功能要求,布局想法,及大概展示…

编译 x264 for iOS

文章目录 编译在 FFMpeg 启用 x264其他编译选项报错处理 环境 &#xff1a; macOS 14.3.1 x264 - 20191217-2245 编译 1、下载 x264 源码 http://download.videolan.org/pub/videolan/x264/snapshots/ 这里我下载x264-snapshot-20191217-2245.tar.bz2 &#xff08;截止2024-…

OceanBase 轻量级数仓关键技术解读

码到三十五 &#xff1a; 个人主页 为了更好地聚合和治理跨域数据&#xff0c;帮助企业用较低的成本快速聚合分析&#xff0c;快速决策&#xff0c;不断的让企业积累的数据产生价值&#xff0c;从全域海量数据抓取&#xff0c;高性能流批处理&#xff0c;元数据血缘治理等等方面…