如何在打字稿快递服务器中将字符串解码/编码为 base64

Arn*_*Roy 10 express typescript tobase64string

我有一个用打字稿编写的快速服务器。

作为atob()btoa()适用于浏览器,在 Nodejs 上。

我们一般用

Buffer.from("some-string").toString('base64') 将字符串编码为 base64。

但是,当我在 TypeScript 中编写代码时,这似乎不起作用。我需要一些帮助。

Joh*_*ohn 13

在节点打字稿中:

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)
});
Run Code Online (Sandbox Code Playgroud)


小智 6

请使用btoa编码字符串

console.log(btoa("abc")); // YWJj
Run Code Online (Sandbox Code Playgroud)

用于atob解码相同的字符串

console.log(atob("YWJj")); // abc
Run Code Online (Sandbox Code Playgroud)

  • @deprecated — 使用 Buffer.from(data, 'base64') 代替。 (8认同)
  • atob() 或 btoa() 抛出错误,因为 btoa 未定义。我想如果您在浏览器上托管它,这会起作用。但是,作为 REST 服务器,这可能不起作用。 (3认同)