Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

node js server ile client arasında object transferi


-Neiloth-

Öne çıkan mesajlar

selam herkese, öncelikle web programlama konusunda newbie olduğumu belirtmeliyim, çevremde pek yönlendirecek insan yok self teaching ile elimden geleni yapıyorum ama bazen konseptler karışabiliyor. bu başlıktan beklentim sorunuma yönelik olarak hangi konuda araştırma yapmam gerektiğini belirlemek.

yapmaya çalıştığım şey, client'tan bir obje alıp bu obje üzerindeki parametreleri kullanarak, sunucuda duran fonksiyonlarla bu objeye ekstra parametreler ekleyerek tekrar client'a yollamak istiyorum.

sorunu görselleştirirsem;spacer.png

istediğim, index.html'den  bir post request ile bir obje yollayayım, app.js bu objeyi aldığında içerisindeki bir fonksiyonla update etsin ve tekrar index.html'e yollasın. client.js'de, bir şekilde bu objeyi tanıyarak rutin işlemlerini yapsın.

dosyalarımı ayrı ayrı düzgün bir şekilde çalışıyor. sadece bu objeyi dolaştırma işinde çuvalladım. bunu en sade ve en kolay şekilde yapmak için ne öğrenmeliyim?

teşekkürler.

Link to comment
Sosyal ağlarda paylaş

serverda objeyi json yapıp, html'e bir div içerisine yazdırıp görünmez yaptım, client side'daki javamla bu objeyi alıp parse ettim. yani işlemin yarısını yapmayı başardım gibi..

şöyle bir mantık kurmaya çalıştım.

serverdaki javascripte request gelsin bir string ile, onu parse edeyim objeme dönüştüreyim hesaplarımı yapayım html'deki bir div'e yazdırayım.

ciient'daki javascriptim ise, o div'e yazılan metni parse etsin objeye dönüştürsün ve buna göre işlemlerini yapsın sürekli.

çok ilkel oldu sanırım bunun için uygun bir tool olmalı.

link'i inceliyorum, işime yarayacak gibi görünüyor teşekkür ederim.

Link to comment
Sosyal ağlarda paylaş

POST u express kullanarak alıyorsan işlemleri yaptıktan sonra res.json yada res.send ile response gönderebilirsin.

app.post('/varsaurl', (req, res) => {
	// Burada aldıgın data ile istediğin işlemleri yap
    res.send('html/text içerik'); 
  // yada
    res.json({ key: 'value' }); // json içerik.
});

 

Link to comment
Sosyal ağlarda paylaş

AJAX gondermen gerek bu arada, farkindasindir diye dusunuyorum. Standart form'la GET/POST yapma yontemi sayfayi yeniler ki bu da guncel veriyi sayfaya basabilmek icin index.html'i server tarafinda urettirmen gerektigi anlamina gelir.

Browser destegini su asamada ne kadar onemsiyosun bilmiyorum ama geleneksel olarak Vanilla JS'te XMLHttpRequest'lerle yaptigimiz bu olayi modern browser'larda fetch ile yapabiliyoruz.

Mesela /bisiler diye bi endpoint'te duran ve {foo: 'bar'} gibi bi JSON POST ettiginde bunu {foo: 'bar', baz: 'quux'} yaparak JSON formatinda geri donduren bi servisin var diyelim. Bunu client tarafinda fetch ile soyle cagirabiliyosun

function postJson(data) {
    return fetch('http://localhost/bisiler', {
        method: 'POST',
        mode: 'cors',
        headers: {
            'Content-Type': 'application/json' // baska header'in varsa ekleyebilirsin asagi dogru
        },
        body: JSON.stringify(data)
    })
        .then(response => response.json()); // response json oldugu icin parse ettiriyoruz
}

function doSomething() {
    postJson({foo: 'bar'})
        .then(result => {
            console.log('response geldi', result);
        })
        .catch(err => {
            console.error('hata oldu', err);
        });
}

 

Kojiroh tarafından düzenlendi
Link to comment
Sosyal ağlarda paylaş

On 03.10.2019 at 16:59, jonq dedi ki:

POST u express kullanarak alıyorsan işlemleri yaptıktan sonra res.json yada res.send ile response gönderebilirsin.


app.post('/varsaurl', (req, res) => {
	// Burada aldıgın data ile istediğin işlemleri yap
    res.send('html/text içerik'); 
  // yada
    res.json({ key: 'value' }); // json içerik.
});

 

şimdi bunu uyguladım ama mantığıma yatmayan şu; ben res.json ile objeyi html'e yolladım ama benim html'imi yollamam gerekmiyor mu tekrar kullanıcıya? html'i yollayabiliyorum bu arada sorunsuz bir şekilde, bu json'ı html'in içine gömebilir miyim?

Link to comment
Sosyal ağlarda paylaş

22 saat önce, Kojiroh dedi ki:

Standart form'la GET/POST yapma yontemi sayfayi yeniler ki bu da guncel veriyi sayfaya basabilmek icin index.html'i server tarafinda urettirmen gerektigi anlamina gelir. kodu denedim, konsolda response geldi yazısını görebildim. ama result null görünüyor, oysa ben dolu bir json yollamıştım.

 

 

öncelikle şu kavramı oturtmuş oldum teşekkürler, 

ikincisi, evet ben kesinlikle fetch yapmalıyım bence. ama şu metodu denediğimde response geldi yazısını görebiliyorum konsolda ama result null oluyor. yani postJson kısmında bi sorun var sanırım çünkü serverda gelen datayı console'a yazdığımda gördüm ki null gelmiş.

var a = {"a":"1","b":"5","c":"15"};

postJson(a);
doSomething();

 function postJson(data) {
    return fetch('http://localhost:3000/fetch', {
        method: 'POST',
        mode: 'cors',
        headers: {
            'Content-Type': 'application/json' // baska header'in varsa ekleyebilirsin asagi dogru
        },
        body: JSON.stringify(data)
    })
        .then(response => response.json()); // response json oldugu icin parse ettiriyoruz
}

function doSomething() {
    postJson(a)
        .then(result => {
            console.log('response geldi', result);
        })
        .catch(err => {
            console.error('hata oldu', err);
        });
}

bu da serverdaki kodum;

app.post('/fetch', (req,res) => {
 collectRequestData(req, channel => {
    console.log(channel);
    res.json(channel);
 });
});

sanırım şu postJson metodunu düzeltirsem hallolcak.
 

Link to comment
Sosyal ağlarda paylaş

Client'a JSON data gönderip form tarafında gelen datayı parse ederek HTML kısmına istediğin gibi dökebilirsin yada res.send('<div id="bla"></div>');  gibi direk HTML formatında gönderip onu istediğin yere append edebilirsin. İki yöntemde de istediğini yapabilirsin. Json yollarsan HTML şeklinde düzenlemeyi client side da yaparsın, diğerini serverside da yapıp öyle gönderirsin farkı bu. Hatta ek olarak res.send(200); gibi success de dönderip response 200 geldiyse html işlemlerini client tarafında devam da ettirebilirsin.

 

 

Link to comment
Sosyal ağlarda paylaş

  • 1 ay sonra ...
×
×
  • Yeni Oluştur...