не работает npm модуль "request" для Node.js v12.18.3
-
Привет
Не работают POST и GET запросы на Node.js версии 12.18.3 с npm модулем "request". При POST и GET запросах получаю всегда один и тот же ответ: {} (двойные фигурные скобки) и что-то мне подсказывает, что это не ответ сервера. Раньше теже запроссы работали на Node.js v8.6.0.
Список используемых модулей выглядит так (на v8.6.0 он выглядел так же):
Приведу часть Node.js кода:
var request = require('request');
var crypto = require('crypto');
const qs = require('qs');
.....
const requestOptions = {.........}
......
request(requestOptions, function(error, response, body) {....}Асинхронность в коде учтена.
Совместим ли модуль request с Node.js v12.18.3? Кстати, при выборе npm модуля в настройках я не выбираю его из выпадающего списка, а просто вбиваю слово "request" и БАС подгружает этот модуль.
Если проблема в несовместимости этого npm модуля vожет мне следует установить другой npm модуль для POST и GET запросов (из выпадающего списка), например "got" и перестроить приведенный выше код Node.js под него?Версия БАС 23.2.2
ОС Windows 7 Pro
-
@botovod это модуль устарел и больше не будет развиваться. Используйте node-fetch или got. В got есть недостаток, сбивается порядок заголовков.
-
@UserTrue Как перестроить мой код Node.js на новый модуль?
var request = require('node-fetch');
var crypto = require('crypto');
const qs = require('qs');
.....
const requestOptions = {.........}
......
request(requestOptions, function(error, response, body) {....}Надо ли слово "request" менять в остальной части кода на "node-fetch"?
-
@botovod said in не работает npm модуль "request" для Node.js v12.18.3:
@UserTrue Как перестроить мой код Node.js на новый модуль?
var request = require('node-fetch');
var crypto = require('crypto');
const qs = require('qs');
.....
const requestOptions = {.........}
......
request(requestOptions, function(error, response, body) {....}Надо ли слово "request" менять в остальной части кода на "node-fetch"?
Только если модуль "node-fetch" имеет точно такие же методы, как и "request"
-
@botovod надо не слово менять, а читать документацию, у этих либ явно разное апи
-
Что-то ни "node-fetch" ни "got" не хотят работать в БАСе ни в версии Ноды 12.18.3 ни в версии 8.6.0.
Коды для теста брал из интернета (прикрепляю ниже):var fetch = require('node-fetch'); fetch('https://google.com') .then(res => res.text()) .then(text => console.log(text))
const got = require('got'); (async () => { try { const response = await got('https://google.com'); console.log(response.body); //=> '<!doctype html> ...' } catch (error) { console.log(error.response.body); //=> 'Internal server error ...' } })();
Скрипт с кодом:
node-fetch.xmlЧто делаю не так?
-
@botovod said in не работает npm модуль "request" для Node.js v12.18.3:
Что-то ни "node-fetch" ни "got" не хотят работать в БАСе ни в версии Ноды 12.18.3 ни в версии 8.6.0.
Коды для теста брал из интернета (прикрепляю ниже):var fetch = require('node-fetch'); fetch('https://google.com') .then(res => res.text()) .then(text => console.log(text))
const got = require('got'); (async () => { try { const response = await got('https://google.com'); console.log(response.body); //=> '<!doctype html> ...' } catch (error) { console.log(error.response.body); //=> 'Internal server error ...' } })();
Скрипт с кодом:
node-fetch.xmlЧто делаю не так?
await(new Promise((resolve, reject) => { var fetch = require('node-fetch'); fetch('https://google.com') .then(res => res.text()) .then(text => { console.log(text) resolve() }) }));
-
Вобщем, с node-fetch разберусь позже, а пока решил потестировать переписанный скрипт на старом модуле request и заметил такую проблему: не работают POST и GET запросы на Node.js версии 8.6.0 с npm модулем "request" в версии БАС 23.2.2. Выдает ответ: {} (фигурные скобки).
Пробовал пересоздать действие Node.js - не помогает.
Когда открываю такой же скрипт на БАС 23.2.2 с тем же кодом Node.js созданный в версии БАС 21.9.2 - то POST и GET запросы работают исправно (скопировал код из одного скрипта в другой, чтобы убедится что он одинаковый).
Можно тут что-то сделать, чтоб скрипт созданный в БАС 23.2.2 исправно работал в этой же версии?Еще заметил такую особенность, что нужно пересоздавать действие Node.js для разных версий Node.js.
-
@botovod said in не работает npm модуль "request" для Node.js v12.18.3:
(async () => {
Убери (async () => { }
-
@Fire_track said in не работает npm модуль "request" для Node.js v12.18.3:
Убери (async () => { }
Его там и нет. Раньше этот же код работал нормально, теперь не работает. Толи БАС перестал поддерживать модуль request в новой версии (хотя по моему это имеет отношение именно к Node), то ли скачиваемый модуль изменился.