web3.setProvider ist keine Funktion

Ich versuche, etwas über web3.js zu erfahren, das ich installiere

npm install ethereumjs-testrpc

Und

npm install web3  // version 0.20.6
npm install ganache-cli // version 6.0.3

dann verwende ich den folgenden Code

var TestRPC = require("ethereumjs-testrpc");
var web3 = require("web3");
var ganache = require("ganache-cli");
//~ web3.setProvider(TestRPC.provider());
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545')); 
//~ var web3 = new web3(web3.givenProvider || ganache.server());

//~ var web3 = new web3(web3.givenProvider || 'ws://some.local-or-remote.node:8546');
//~ web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));
//~ web3.setProvider(new web3.providers.HttpProvider('http://geth-node-ip:8545'));
//~ console.log(web3.isAddress("0x8888f1f195afa192cfee860698584c030f4c9db1"))




//~ web3.setProvider(TestRPC.provider());
//~ console.log(web3.version);
//~ console.log(web3.providers);

Fehler sagtweb3.setProvider is not a function

Antworten (3)

Ich glaube, Sie wollen so etwas. (Beachten Sie die Großschreibung.)

var Web3 = require('web3');
var web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'));
Danke für deine Antwort ich habe die Lösung gefunden. testrpc-Verbindung wird gestoppt. das ist mir nicht aufgefallen. Danke

Stellen Sie sicher, dass Ihre Web 3-Version in package.json ist

"web3": "^1.0.0-beta.37"

Ok, ich habe das Problem, laut den Dokumenten von Web3-docs-link (web3), wird setProvider() verwendet, um den Anbieter von web3 zu ändern, wenn Sie den Anbieter zum ersten Mal festlegen, müssen Sie dies verwenden Weg:

var Web3 = require('web3');
var web3 = new Web3('http://localhost:8545');
// or
var web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'));

// change provider
web3.setProvider('ws://localhost:8546');
// or
web3.setProvider(new Web3.providers.WebsocketProvider('ws://localhost:8546'));