выборка не распознается как асинхронная функция

#javascript #node.js #async-await #fetch

#javascript #node.js #асинхронный-ожидание #выборка

Вопрос:

Когда я пишу это в консоли в devtools:

 const response = await fetch("http://localhost:5001/api/products", {
    headers: {"Content-Type":"application/json"}
});
const products = await response.json();
 

Я могу успешно получить данные.

Но когда я запускаю свой проект node с тем же кодом в файле JS, я получаю следующую ошибку:

 Uncaught SyntaxError: Unexpected reserved word
 

Комментарии:

1. Какую версию узла вы используете? (вы можете найти это с node --version помощью)

2. У вас установлена node-fetch ?

3. v12.18.1 . Попробовал предложение @3limin4t0r, но безуспешно.

4. @ciaodejan Вам требовалась библиотека после установки? Если вы этого не сделали, вы все равно не сможете использовать fetch . Убедитесь, что у вас есть const fetch = require('node-fetch') , как описано в разделе Загрузка и настройка модуля

5. Это не fetch не распознается, это await ключевое слово.

Ответ №1:

await не может использоваться вне async функции, если вы не находитесь на узле 14.3.0 и не используете ESM. Оберните код в подобный блок (async () => { /* your code here /* })(); , и все должно быть готово.