簡體   English   中英

如何在節點js中解碼base64編碼的json object字符串

[英]How to decode base64-encoded json object string in node js

我有一個 JSON object X

var X = {
  'a': 'A',
  'b': 'B'
}

我在客戶端 Javascript 中使用btoa()對上述 object 進行編碼

var getEncryptedPayload = function(payload) { // payload is a JSON object
  payload = JSON.stringify(payload)
  payload = window.btoa(payload)
  return payload;
}

我想在nodejs中解碼上面的編碼字符串。 我嘗試使用Buffer進行解碼,但沒有得到結果。

var getRequestBody = function(request) {
    const encodedRequestBody = request.body;
    const decodedRequestBodyString = Buffer.from(encodedRequestBody, "base64");
    const requestBodyObject = JSON.parse(decodedRequestBodyString);
    return requestBodyObject;
}

但是,上面的代碼拋出了一個錯誤——

TypeError [ERR_INVALID_ARG_TYPE]:第一個參數必須是字符串類型或 Buffer、ArrayBuffer 或 Array 的實例或類似 Array 的 Object。 收到Object的實例

誰能給我建議一個解決方案?

Buffer.from的結果是Buffer的一個實例。 要將緩沖區實例轉換為可在JSON.parse中使用的字符串,代碼需要首先調用Buffer.toString以使其工作

const requestBodyObject = JSON.parse(decodedRequestBodyString.toString());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM