#node.js #encoding #textdecoder
Вопрос:
Я использую следующий код для декодирования некоторых данных
const { q } = req.query
const { data } = await axios({
url: GOOGLE_AUTOCOMPLETE_ENDPOINT,
method: 'get',
params: {
client: 'chrome',
hl: 'ko',
gl: 'kr',
q,
},
responseType: 'arraybuffer',
})
// data decoding
const decoder = new TextDecoder('EUC-KR')
const decodedData = decoder.decode(data)
Когда я тестирую локальное использование npm run dev
, все в полном порядке.
но когда я развертываю тот же код в среде AWS, он завершается ошибкой с сообщением об ошибке
{"error":{"code":"ERR_ENCODING_NOT_SUPPORTED","type":"RangeError","message":"The "EUC-KR" encoding is not supported","date":"2021-10-08T00:25:03.672Z","debug":{"stack":["RangeError [ERR_ENCODING_NOT_SUPPORTED]: The "EUC-KR" encoding is not supported"," at new TextDecoder (internal/encoding.js:396:15)"," at getYoutubeAutoCompleteHandler (/usr/src/app/lib/api/keywords/youtubeAutoComp.js:38:21)"," at runMicrotasks (<anonymous>)"," at processTicksAndRejections (internal/process/task_queues.js:97:5)"," at async wrapperFn (/usr/src/app/lib/utils/asyncWrapper.js:11:7)"]},"request":"/api/v2/keywords/youtube/autoComplete?q=t"}}
Я понятия не имею, что я пропустил..
AWS с помощью команды pm2-runtime server.ts в образе Docker
Ответ №1:
Это было Node.js проблема с версией
Я использовал узел v14 в локальном.
и AWS с использованием узла v12
когда я меняю узел на v12 в локальной
TextDecoder не работает