Nodejs
無法使用 nodejs 編譯合約
直到今天,一切都執行良好,當我嘗試使用
readFileSync
它時,它會為我[Function]
提供各種文件。在我的範例中,當我嘗試編譯它給我的契約時‘解析輸入 JSON 時出錯:* 第 1 行,第 1 列\n 語法錯誤:需要值、對像或數組。\n’
> code = fs.readFileSync('Voting.sol').toString [Function] > compiledCode = solc.compile(code) { errors: [ 'Error parsing input JSON: * Line 1, Column 1\n Syntax error: value, object or array expected.\n' ] }
我重新安裝了 nodejs 和 npm,但仍然出現同樣的錯誤。有什麼幫助嗎?
這將返回一個函式:
fs.readFileSync('Voting.sol').toString
雖然這會呼叫函式:
fs.readFileSync('Voting.sol').toString();
並且返回的不是函式,而是函式返回的值。
您的程式碼所做的是將對函式本身的引用保存在
code
變數中並將其傳遞給solc.compile()
期望字元串並將函式隱式轉換為字元串,這反過來導致獲取函式的原始碼並嘗試解析它,這失敗的。