Node.js TextDecoder тот же код, но в среде AWS кодировка не поддерживается проблема

#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 не работает