Как декодировать / кодировать строку в base64 в машинописном экспресс-сервере

У меня есть экспресс-сервер, написанный на машинописи.

Как atob() или же btoa() работает на браузерах, на нодейсах.

Мы обычно используем

Buffer.from("some-string").toString('base64') кодировать строку в base64.

Однако, кажется, это не работает, когда я пишу код на TypeScript. Мне нужна помощь с этим.

1 ответ

В машинописном тексте Node:

const b64 = "SGVsbG8sIFdvcmxkIQ==";
const str = 'Hello, World!'

const decode = (str: string):string => Buffer.from(str, 'base64').toString('binary');
const encode = (str: string):string => Buffer.from(str, 'binary').toString('base64');

test('base64 decode', () => {
  expect(decode(b64)).toEqual(str)
});

test('base64 decode', () => {
  expect(encode(str)).toEqual(b64)
});

test('base64 encode/decode', () => {
  expect(decode(encode(str))).toEqual(str)
});

Пожалуйста, используйте бота для кодирования строки

console.log(btoa("abc")); // YWJj

использовать для atob декодировать ту же строку

console.log(atob("YWJj")); // abc

Если вы использовали window.btoa(fileData) на переднем конце.

ПРИМЕЧАНИЕ. После отзывов от zerkms и прочтения кода пакета кажется, что вы можете просто сделать это вручную. Однако для работы мне пришлось запустить его дважды.
Еще я пытался расшифровать большое изображение.

Затем на сервере nodejs вы можете напрямую использовать Buffer:

const b64 = "SGVsbG8sIFdvcmxkIQ==";
const fileDataProcessed = Buffer.from(b64, 'base64').toString('binary')
const decodedData = Buffer(fileDataProcessed, 'base64')

// This is the code that you can now upload to your s3 bucket, or somewhere else.
console.log(decodedData);
Другие вопросы по тегам