Html - CSS - XML - JavaScript - Ajax
Nodejs Module Export Ta Sıkıntım Var, Nerede Hata Yapıyorum?
Nodejs Module Export Ta Sıkıntım Var, Nerede Hata Yapıyorum?
-
Merhaba değerli müridler .
nodejs ile kodladığım bir yazılımda ufak tefek değişiklikler yapayım dedim ama yeni halini çaıştıramadım nerede hata yaptığımıda bulamadım.
çalışan kod şu şekilde.
'use strict'; var Web3 = require('web3'); const redis = require('./redis.js'); const web3binance = new Web3(new Web3.providers.HttpProvider('https://bsc-dataseed.binance.org/')) module.exports = web3binance;
yaptığım değişiklikle yukarıdaki urli manuel yazmak yerine redisten alıyorum ama çalışmıyor.
'use strict'; var Web3 = require('web3'); const redis = require('./redis.js'); var url=redis.get('binanceurlenspoint'); //console.log(url); dediğimde promise pending dedi const web3binance = new Web3(new Web3.providers.HttpProvider(url.toString())); module.exports = web3binance();
konunun daha öncedende çözemediğim asyn await saçmalığıyla alakalı olduğunu düşünüyorum. ama çözüm bulamıyorum.
yukarıda verdiğim kodları kullandığım sayfada const web3binance = require('./../includes/web3binance.js');
şeklinde impart ediyorum ve bağlantı hatası alıyorum.
yani systax vs değil direk web3binance bağlanamadı şeklinde hata alıyorum.
konunun uzmanları olduğunu bildiğim @end ve @yolbulucu hocalarımdam özellikle detsk istiyorum..
-
Dokümantasyonuna bakıyor musun redis'in node kütüphanesi için?
redis.get('binanceurlenspoint', callback)
Olması gerekiyor sanırım.
'use strict'; var Web3 = require('web3'); const redis = require('./redis.js'); redis.get('binanceurlenspoint', (err, url) => { const web3binance = new Web3(new Web3.providers.HttpProvider(url.toString())); module.exports = web3binance(); });
Ise yarar belki
-
end bunu yazdı
Dokümantasyonuna bakıyor musun redis'in node kütüphanesi için?
redis.get('binanceurlenspoint', callback)
Olması gerekiyor sanırım.
'use strict'; var Web3 = require('web3'); const redis = require('./redis.js'); redis.get('binanceurlenspoint', (err, url) => { const web3binance = new Web3(new Web3.providers.HttpProvider(url.toString())); module.exports = web3binance(); });
Ise yarar belki
redisi yukarıda verdiğim şekilde birçok yerde kullanıyorum hocam, sorun redisi bu kullanarak export etmemden kaynaklanıyor sanırım.
verdiğim gibi deneyince şöyle bir hata verdi araştırdım redisigüncelleyin faland enilmiş ama benim redis zaten güncel :
return new ReplyError(string) ^ ReplyError: ERR wrong number of arguments for 'get' command at parseError (/root/nodeapp/node_modules/redis-parser/lib/parser.js:179:12) at parseType (/root/nodeapp/node_modules/redis-parser/lib/parser.js:302:14) { command: 'GET', args: [ 'binancerpcendpoint', [Function (anonymous)] ], code: 'ERR'
}
aynı sayfada şu şekilde denediğimde çalışıyor mesela ekrana yazdırıyor url adresini:
async function test(){ console.log(await redis.get('binancerpcendpoint')); } test();
bu arada belki sorun redisle alakalıdır diye mysqle kaydedip oradan almayı denedim url adresini ondada aynı hatayı verdi.
-
async function test(){ console.log(await redis.get('binancerpcendpoint')); } test();
bunu
async function test(){
return await redis.get('binancerpcendpoint');
}const web3binance = new Web3(new Web3.providers.HttpProvider(test()));
gibi vermen lazım -
Cosmic bunu yazdı
async function test(){ console.log(await redis.get('binancerpcendpoint')); } test();
bunu
async function test(){
return await redis.get('binancerpcendpoint');
}const web3binance = new Web3(new Web3.providers.HttpProvider(test()));
gibi vermen lazımÖyle de promise döner hocam. Async bir bloğun içinde yine awaitle çağırması lazım test fonksiyonunu.
-
edit: sorry bro ynaliş anlamişim.async getWeb3Binance() {
var url= await redis.get('binanceurlenspoint'); const web3binance = new Web3(new Web3.providers.HttpProvider(url.toString()));
return web3binance}module.exports = {getWeb3Binance}______
import {getWeb3Binance } from '../const/binance';let bnc = await getWeb3Binance(); -
rakkoc bunu yazdıedit: sorry bro ynaliş anlamişim.async getWeb3Binance() {
var url= await redis.get('binanceurlenspoint'); const web3binance = new Web3(new Web3.providers.HttpProvider(url.toString()));
return web3binance}module.exports = {getWeb3Binance}______
import {getWeb3Binance } from '../const/binance';(async () => {let bnc = await getWeb3Binance();})()Aynen bu. Async func bloğundan devam edicen tabii
-
rakkoc bunu yazdıedit: sorry bro ynaliş anlamişim.async getWeb3Binance() {
var url= await redis.get('binanceurlenspoint'); const web3binance = new Web3(new Web3.providers.HttpProvider(url.toString()));
return web3binance}module.exports = {getWeb3Binance}______
import {getWeb3Binance } from '../const/binance';let bnc = await getWeb3Binance();eyvallah hocam deneyip bilgi vereceğim yarın
-
rakkoc bunu yazdıedit: sorry bro ynaliş anlamişim.async getWeb3Binance() {
var url= await redis.get('binanceurlenspoint'); const web3binance = new Web3(new Web3.providers.HttpProvider(url.toString()));
return web3binance}module.exports = {getWeb3Binance}______
import {getWeb3Binance } from '../const/binance';let bnc = await getWeb3Binance();on numara çalıştı hocam teşekkür ederim.
-
Hocam ilkinde fonksiyonu export etmişsin ikincisinde singleton yapmışsın
module.exports = fnc
module.exports = fnc()
Farkı bil diye yazıyorum çözmüşsün ama
-
by_Tet bunu yazdı
Hocam ilkinde fonksiyonu export etmişsin ikincisinde singleton yapmışsın
module.exports = fnc
module.exports = fnc()
Farkı bil diye yazıyorum çözmüşsün ama
çok farklı şekillerde denedim hocam kontrol edeyim gene teşekkür ederim.