建议和反馈

请填写你的反馈内容

问答 > 以太坊 > 问答详情
已解决

如何使web3工作?10LK

我安装了web3(npm install web3),


但由于某种原因,nodejs不是调用web3方法或显示对象数据,而是显示对象结构:


> web3.eth.accounts

Accounts {

  currentProvider: [Getter/Setter],

  _requestManager:

   RequestManager {

     provider:

      HttpProvider {

当我通过geth attach连接到geth时,嵌入到geth中的web3正常工作


我试图从docker里面使用web3,Dockerfile如下:


FROM node:carbon


# Create app directory

WORKDIR /usr/src/app



# Install app dependencies

# A wildcard is used to ensure both package.json AND package-lock.json are copied

# where available (npm@5+)

COPY package*.json ./


RUN apt-get -y update && \

    apt-get -y install vim


RUN npm install


RUN npm install express


RUN npm install nodemon -g


RUN npm install hashmap && \

    npm install body-parser -g


# If you are building your code for production

# RUN npm install --only=production




# Bundle app source

COPY . .



CMD [ "nodemon", "start" ]


2019-09-11
0
请先登陆或注册

tothemoon2019-09-11

如果没有看到你package.json,我无法分辨,但我猜你在你的docker实例中使用web3.js 1.0.0-beta,而geth使用web3.js 0.2xx web3.eth.getAccounts()可能会做你想要的。 - smarx 18年  2月23日22:47

Web3.js方法返回promises(在新的1.0.0 beta中),它们与geth中的web3 api不同。查看web3.js文档中的示例 -  jeff 2月23日 '18 在22:48

是的,package.json声明web3是1.0.0-beta.30:{“name”:“ess_emulator”,“version”:“1.0.0”,“description”:“Docker上的Node.js”,“作者” “:”Oleg Levchenko <oleg.levchenko@ooma.com>“,”main“:”server.js“,”scripts“:{”start“:”node server.js“},”dependencies“:{”body -parser“:”^ 1.0.2“,”express“:”^ 4.16.2“,”hashmap“:”^ 2.3.0“,”web3“:”^ 1.0.0-beta.30“}} -  


投一票
评论(0)
赞赏(0)

求助中

解决了这个问题,预计可以帮助到

  • 0
  • 1
  • 1
  • 6
  • 0
邀请

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励