如何在一个请求中保存gridFS中的多个文件?

时间:2014-04-09 10:22:44

标签: node.js gridfs

我正在使用nodejs和mongodb,并希望一次存储多个文件。我正在使用GridFS文件。

我的代码适用于单个文件上传。     var writestream = gfs.createWriteStream({filename:filename,metadata:project._id});                的console.log(tmpFilepath);

            var filename    = req.files.file.name;
            var tmpFilepath="./upload/"+ guid();
            fs.rename(req.files.file.path,tmpFilepath);
            fs.createReadStream(tmpFilepath)
              .on('end', function() {
             console.log("file Saved");
              })
              .on('error', function() {
               console.log("error encountered");
               // res.send('ERR');
              })
              // and pipe it to gfs
              .pipe(writestream);
                writestream.on('close', function (file) {
                fs.unlink(tmpFilepath);

              });

如何才能使其上传多个文件?

1 个答案:

答案 0 :(得分:0)

将其包装在异步调用中,这是一个可以安装的npm模块。

var files = [];
async.each([].req.files.name, function(item){
    /* Apply your gridfs here */
    files.push('somedetails');
 }, 
 function(err){
    /* finished processing all the files...do something with them /*
    console.log(files);
});