Ключевое слово
await
может использоваться только внутри функции async
, поэтому вам нужно написать асинхронную c функцию, которая делает запрос API для получения данных
async function fetchData() {
const response = await fetch('https://jsonplaceholder.typicode.com/posts');
const data = await response.json();
const refined = data.filter(item => item.id < 20);
const stringified = JSON.stringify(refined);
// promise version of appendFile function from fs.promises API
await fs.appendFile(filePath, stringified);
}
fs
В модуле nodeJS есть функции, которые используют обещания вместо обратных вызовов. если вы не хотите использовать версию обратного вызова, вам нужно будет использовать версию обещания функции appendFile
.
Вы можете импортировать версию обещания модуля fs
как require('fs').promises
или require('fs/promises')
.
Для обработки ошибок убедитесь, что код, вызывающий эту функцию, имеет блок catch
для перехвата и обработки любых ошибок, которые могут быть вызваны этой функцией. Вы также можете обернуть код этой функции блоком try-catch
для обработки ошибок внутри этой функции.
Боковой совет: Если вы хотите записывать данные в файл в легко читаемом формате, измените
const stringified = JSON.stringify(refined);
на
const stringified = JSON.stringify(refined, null, 4);