node.js - 如何在 Node.js 0.10 中立即使用读取流链接写入流?

标签 node.js stream mongoose pipe gridfs

以下行将从指定的 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 会引发 Error: 500 Cannot Pipe。不可管道。

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

这是因为图像文件还没有准备好读取,对吧?我应该怎么做才能解决这个问题?错误:500 无法管道。不可管道。

使用以下:Node.js 0.10.10mongooserequestgridfs-stream 库.

最佳答案

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

和这个是一样的:

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

所以问题是您试图将 .pipe 一个 WriteStream 插入另一个 WriteStream

关于node.js - 如何在 Node.js 0.10 中立即使用读取流链接写入流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17098400/

相关文章:

c# - 使用 Stream.BeginRead 的顺序异步读取

node.js - 蒙戈错误: failed to connect to server [<docker-machine>:<port>] on first connect

javascript - 按顺序运行测试文件?

javascript - 使用 express node.js 的 Route 但 express.Router 变得未定义

java - 关闭客户端套接字时如何防止 "Connection reset"错误?

javascript - 使用 Node JS 将多个 JPG 转换为动画 GIF

javascript - node js可以计算两个输入字段的值并更新另一个字段吗?

node.js - NodeJs : slow req. 管道

javascript - 使用 Mongoose 更新嵌套对象

node.js - mongoose 7.0.3 使用运算符 $and 严格搜索日期