Kezdőoldal » Számítástechnika » Programozás » Javascript fetch miért csinálj...

Javascript fetch miért csinálja ezt?

Figyelt kérdés

Json-server modul nál miért nem látja az összes szintet a json file ban? Ha van egy ilyen struktúrám {

"class1": {

"class2": {

"property": "value"

}

}

}


De csak a class1 re tudok belelépni. Sem az alatta sem a fölötte lévő gyökérből nem lehet adatokat lekérni.


A fetch nél http://localhost:3000/class1/class2 már nem jó mivel a class2 egy szinttel lejjebb van mint a class1 de a localhost:3000 sem jó mert az meg egyel feljebb van mint a class1.


Robot szerint minden jó működnie kéne.


De egy másik express modullal létrehozott szerver esetén sem lát semmit a kérés . 404 et dob. Egyedi útra ami nem mutat json filera is 404 et dob.



dec. 28. 20:54
 1/6 anonim ***** válasza:

Get -vel kapod meg ezt a json app-ban?

Le van rendesen programozva, hogy melyik kérésre mit adjon vissza?

dec. 29. 09:20
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

Milyen Json-server modult használsz?


Express routingot nézd át a doksiban, átláthatóan és egyszerűen levezeti, hogy tudod rábindelni az egyes endpointokat adott elérési címekre.


[link]

dec. 29. 09:52
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:

Csak get kéréseket próbálgatok. De szerintem a json formátumra való alakítással vagyok félrevezetve IA által.


Tisztázzunk valamit. A JSON.strignify() csomagolba be json stringgé az objektumokat??? ÉN Így tanultam. A JSON.parse() meg ezt alakítja vissza objektumokká.??? De nekem az IA azt molndja hogy a fecth kérésben mikor visszajön az anyag a legvégén csinájlak egy json.stringify t


fetch('/')

.then(response => response.json()) AKKOR EZ MIRE VALÓ?

.then(data => {

console.log(data);

return JSON.stringify(data); EZ MEG MI A LÓFSZNAK KELL IDE?

})

.then(text => {

console.log(text); // Szöveg kiírása

})

.catch(error => console.error('Hiba:', error));



Nem json parse val kéne visszaalakítani a csomagot?


Miért a túl oldalon alakítja át parse val a küldendő csomagot?

server3.get('/hello2', function (req, res) {

fs.readFile('./db/db1.json', (err, json) => {

let obj = JSON.parse(json); ITT

res.json(obj);

console.log('Hello, World!');

});

dec. 29. 12:04
 4/6 anonim ***** válasza:
100%

Faék egyszerűen megfogalmazva:

- Adatot string-ben küldünk, JSON.stringify function az objektum átalakítását végzi el nekünk

- Amikor fogadunk akkor szintén stringet kapunk, ezt kliens oldalon mi magunk alakítjuk vissza objektummá a JSON.parse segítségével


Ez szabvány.

Miért? That's the law :DD .. Amúgy azért, mert így csökkentjük a küldendő adatok méretét.


Amúgy erősen ajánlom az általad is felvázolt régi (.then/.catch) megoldás leváltását az új, async/await-re, sokkal átláthatóbb.

Kis segítség ezzel kapcsolatban: [link]

dec. 29. 14:30
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

Nem teljesen értem mit szeretnél. A fetch kliens oldalra van, HTTP kliensként kéréseket tud küldeni a böngésző (vagy pl. microservice-jellegűen a server egy másiknak). Az express egy node.js-es modul, server oldalra, a bejövő HTTP kérések lekezelésére.

A JSON struktúrádban sem csináltál semmit, hogy rekurzív módon bejárd a URL-ben kapott útvonal alapján. Ami bejön a hello2-re, arra visszaadod a teljes json file-odat (amit valami miatt parse-olsz, aztán visszaküldesz ugyanúgy stringként), de a másik oldalon sem csinálsz semmit vele. Nem keresed ki az elemeit. A fetch-ed is a /-re megy, nem arra, amit írtál.

dec. 29. 20:07
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:

Én csak azt akarom kipróbálni hogy ha van egy json adatfájlom akkor annak az egész vagy egy adott út részét lekérem fetch el és konzolra kiiratom.


De akkor a példa szerint eleve hülyeség az hogy a fetch ben a return stringify ol ,mert éppen hogy itt kéne parse olnia a stringként megkapott adatot..?. De az AI ezt akarja csinálni a kérdésemre de én sem így tanultam és nem is működik így.


Ugye hogy a server oldalon a get handlerben kéne a let obj = JSON.parse(json); helyett stringify olni a json adatot mert itt küldi vissza a kliensemnek?


Tisztázzuk még hogy a json() függvény pontosan mire való mert annyi rémlik hogy ez csak a fetch nél használatos mert ez kezeli a json adatot ? De ugyebár ez nem alakít se stringify se parse ez csak felismeri hogy json tartalom érkezik e?


Az express modult csak elkeseredésemben vettem elő. Eredetileg json-server modulra írtam de ott se működik jól semmi ezért szűkítettem egy primitív pár soros kódra hogy lássam már hol van elcseszve az egész.


Ebben a rövid express serverben még odáig se jutottam el hogy egy json adatot kiolvassak hiába adtam meg a db/db.json elérési utat .Másikban meg se adtam json utat hanem csak egy visszaválasz consol.log hello word szöveget hogy lássam megtörténik e egyáltalán a válasz de nem történt meg.


Mert az eredeti problémám a json-server en meg az hogy ott meg csak akkor érkezett meg a válasz ha a fetch url címbe a localhost3000 után megadtam a json file első szintjén lévő valamelyik kulcsot. Hát nem ezt tanítják a videóban, elvileg ha csak a portszámig írod be az utat akkor is ki kéne listáznia az egész json filet amire mutat , és minden egyes szintnek az útját le kéne tudni kezelni 3000/clas1/class2 stb de a második szint már nem teljesül .Ezekre mind JSON file formátum hibát dob a 1 sor 1 oszlopába pedig a json file ok validáltak abban hiba nincs.


Ha a böngésző fejlécébe írogatom be hogy 3000/class1/class2 stb ott se látja pedig működik a port .


A kliens és a szerver kód is AI ellenőrizte szerinte is működnie kéne a fetch kéréseknek bármilyen útra.


Most először az express szerverrel akarom elérni azt hogy válaszoljon utána tesztelni hogy az utakra is helyesen reagál.


A / kérés csak itt tér el mert idegembe azt másoltam be ,programba javítva van.


Egy ötletem van hogy miért nem reagál helyesen az utakra a json-server, nem lehet hogy ebben a sorban a végén az a join okozza ?


const router1 = jsonServer.router(path.join(__dirname, "db1.json"));

dec. 30. 02:09

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!