简体   繁体   English

缓冲区base64编码变量node.js

[英]Buffer base64 encode a variable, node.js

I am trying to encode a variable from a http parameter to base64 using node.js and buffer. 我正在尝试使用node.js和buffer将变量从http参数编码为base64。

My code: 我的代码:

var http = require("http");
var url = require("url");

http.createServer(function(req, res) {

  var parsedUrl = url.parse(req.url, true);
  var queryAsObject = parsedUrl.query;
  var urlEncodeString = new Buffer(queryAsObject).toString('base64');

  console.log(urlEncodeString);

  res.end(urlEncodeString);

}).listen(8020);

console.log("Server listening on port 8020");

URL used: http://127.0.0.1:8020/?test=testtxt 使用的网址: http://127.0.0.1:8020/?test=testtxthttp://127.0.0.1:8020/?test=testtxthttp://127.0.0.1:8020/?test=testtxt

The queryAsObject returns { test: 'testtxt' } queryAsObject返回{ test: 'testtxt' }

Is there a way to use the Buffer to read the variable queryAsObject and encode it with base64 ? 有没有一种方法可以使用Buffer读取变量queryAsObject并使用base64 queryAsObject进行编码?

I have spent a good amount of hours searching for ways to make the buffer accept this variable, but I can not find a way that works. 我花了很多时间寻找使缓冲区接受此变量的方法,但是我找不到可行的方法。

You need to JSON.stringify() your object first. 您首先需要对对象进行JSON.stringify()

Change: 更改:

var urlEncodeString = new Buffer(queryAsObject).toString('base64');

to: 至:

var urlEncodeString = new Buffer(JSON.stringify(queryAsObject)).toString('base64');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM