node.js: не могу понять, в чем проблема с fetch
Пытаюсь прочитать корректный json файл по url: https://junecat.ru/Storage/Others/data.json
Пишу минимально возможный файл, который в node.js прочитает этот json-чик и выведет его в консоль.
Создаю index.js следующего содержания:
import fetch from 'node-fetch'
ReadJsonByHttp();
async function ReadJsonByHttp(){
let url = 'https://junecat.ru/Storage/Others/data.json';
let response = await fetch(url);
let jtxt = await response.json;
console.log('response json: ' + jtxt);
}
Результат, который выводится, просто огорошивает меня: нода выводит.... фанфары...
определение функции response.json!
я такого не видел никогда в своей жизни.
node index.js
(node:10540) ExperimentalWarning: stream/web is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
response json: async json() {
const buffer = await consumeBody(this);
return JSON.parse(buffer.toString());
}
При этом у меня есть packaje.json
{
"name": "test-folder",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "junecat",
"license": "no",
"dependencies": {
"node-fetch": "^3.0.0",
"axios": "^0.16.2"
}
}
Я понимаю, что я что то делаю не так, но я делаю в точности как написано в хелпе:
Не могли бы Вы привести мне какой то понятный пример использования fetch?
Спасибо большое!
Ответы (1 шт):
В документации указано, что response имеет метод json
Буквально
response.json() – декодирует ответ в формате JSON,
то есть здесь наблюдается опечатка, должно выглядеть вот так
async function ReadJsonByHttp(){
let url = 'https://junecat.ru/Storage/Others/data.json';
let response = await fetch(url);
let jtxt = await response.json(); // здесь опечатка
console.log('response json: ' + JSON.stringify(jtxt));
}