CNode

怎么把一个stream 写到文件中,求助!

问答
Ccnlile发布于10 年前最后回复10 年前4 回复3927 浏览0 收藏

这样,简单的说我就要把一个二维码转化为图像,然后把图像信息保存到一个字符串,然后这个字符串传送出去。二维码代码很简单: var qr = require('qr-image');
var fs = require('fs'); var code = qr.image('http://blog.nodejitsu.com/', {type: 'png' });
var output = fs.createWriteStream('nodejitsu.png'); code.pipe(output); 这样是把二维码保存在文件里面,这个不是我要的,我要保存在一个字符串里面,我想上面生成的code 应该是一个流,那么代码我写了个用 var Writable = require('stream').Writable; var ws = Writable(); 的方式,似乎结果很糟糕。。。我不知道问题所在了。。。怎么样把流放到一个字符串里面,base64格式保存呢。。。

查看回复

回复 (4)

M
mabu233#1·10 年前

code 是流的话,就读取这个流啊。 我就知道这个 code.on('data',function(data){ //... })

C
cnlile#2·10 年前

谢谢各位,群里的朋友看到了,已经帮我解答了,方式: var base64 = ''; code.on('data', data => base64 += data.toString('base64')).on('end', () => console.log(base64));

M
mabu233#3·10 年前

你确定你这样写没问题? (new Buffer('a')).toString('base64')+ (new Buffer('a')).toString('base64') != (new Buffer('aa')).toString('base64')

C
cnlile#4·10 年前
引用 mabu233你确定你这样写没问题? (new Buffer('a')).toString('base64')+ (new Buffer('a')).toString('base64') != (new B...

@mabu233 没问题,我最后总结的代码: var qr = require('qr-image'); var code = qr.image('http://blog.nodejitsu.com/', {type: 'png' }); var base64 = ''; code.on('data', data => base64 += data.toString('base64')).on('end', () => console.log(base64));

参与回复
登录后即可参与回复。登录