Web3js
我在瀏覽器中看不到乙太坊賬戶
Ganache 有 10 個乙太坊賬戶。我從事 Truffle 項目。每當我在 Nodejs 中執行以下程式碼時:
var Web3 = require('web3'); var web3 = new Web3("ws://localhost:8545"); var acc= Promise.resolve(web3.eth.getAccounts()); acc.then(function(ins){console.log(ins[0]);});
將顯示第一個帳戶的地址:
但我想在我的瀏覽器中查看該地址。什麼是合適的程式碼?
在您的工作範例中,您正在
getAccounts
以非同步方式處理結果:web3.eth.getAccounts().then(console.log);
在您的非工作範例中,您錯誤地假設它同步執行到完成:
var acc=web3.eth.getAccounts();
函式
web3.eth.getAccounts
返回一個Promise
對象,該對像在解析後包含在您的web3
對象連接到的節點上解鎖的所有帳戶。兌現這個諾言,你應該是好的。
要在瀏覽器中查看合約的值
web3
,您應該創建一些.jade
文件。對於從瀏覽器與智能合約進行互動,工作流程是這樣的:有 3 個級別:1)區塊鏈級別,2)Nodejs 級別,和 3)UI/瀏覽器級別。在“區塊鏈級別”中有給定的智能合約(你擁有它)。在“Nodejs 級別”中,有相關的 JavaScript 程式碼需要web3
模組並使用其方法。在“UI/瀏覽器級別”中有您的瀏覽器。合約連接到 Nodejsweb3
並一起發送數據。另一方面,Nodejs 和瀏覽器也一起發送它們的數據。要在瀏覽器中查看此發送的數據,您應該創建一些.jade
文件。Nodejs 將其數據發送給.jade
文件,然後您通過瀏覽器執行該文件。為了成功地做到這一點,您需要了解 Nodejs 中的 JavaScript 程式。