一尘不染

如何在Node.js 0.10中立即将写入流与读取流链接起来?

node.js

下一行将从指定的url变量下载图像文件:

var filename = path.join(__dirname, url.replace(/^.*[\\\/]/, ''));
request(url).pipe(fs.createWriteStream(filename));

这些行将获取该图像并将其保存到MongoDB GridFS:

 var gfs = Grid(mongoose.connection.db, mongoose.mongo);
 var writestream = gfs.createWriteStream({ filename: filename });
 fs.createReadStream(filename).pipe(writestream);

pipe像这样的链接将引发 错误:500 Cannot Pipe。 不可管道。

request(url).pipe(fs.createWriteStream(filename)).pipe(writestream);

发生这种情况是因为尚未准备好读取图像文件,对吗?我该怎么办才能解决此问题?错误:500无法管道。不可管道。

使用下面的: Node.js的0.10.10猫鼬要求GridFS的流 库。


阅读 228

收藏
2020-07-07

共1个答案

一尘不染

request(url).pipe(fs.createWriteStream(filename)).pipe(writestream);

与此相同:

var fileStream = fs.createWriteStream(filename);
request(url).pipe(fileStream);
fileStream.pipe(writestream);

因此,问题在于您正在尝试.pipe彼此WriteStream融合WriteStream

2020-07-07