微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在nodejs中使用gridfs将本地文件上传到mongodb

如何解决在nodejs中使用gridfs将本地文件上传到mongodb

我正在尝试将文件作为表单输入,然后将其存储在临时文件夹中,然后对该文件运行一些加密算法并将加密文件保存在临时文件夹本身中。之后我想将该 encryptrd 文件从临时文件上传到 gridfs。加密文件存储在 tmp 文件夹中,但未上传到 mongoDB。请帮我看看为什么? 下面是我的代码的一部分。

var storagedisk =   multer.diskStorage({  
  destination: function (req,file,callback) {  
    callback(null,'./tmp');  
  },filename: function (req,file.originalname);  
  }  
});  
var uploaddisk = multer({ storage : storagedisk}).single('file');
let encryptpath="";
app.post('/uploaddisk',function(req,res){
  uploaddisk(req,res,function(err) {
      if(err) {
          return res.end("Error uploading file.");  
      }
      res.end("File is uploaded successfully!");  
      const path=`tmp/${res.req.file.originalname}`;
      let f = new encrypt.FileEncrypt(path);
      f.openSourceFile();
      f.encrypt('111111');
      const efile=f;
      encryptPath = f.encryptFilePath;
      fs.unlinkSync(path);
      uploadtogfs(efile);
  });
});



// Create storage engine
const storage = new GridFsstorage({
  url: dbsURI,file: (req,file) => {
    return new Promise((resolve,reject) => {
      crypto.randomBytes(16,(err,buf) => {
        if (err) {
          return reject(err);
        }
        const filename = file.originalname;
        const uploader = currUser.username;
        const fileInfo = {
          Metadata:{
            uploader:uploader,ofn: file.originalname
          },filename: filename,bucketName: 'uploads'
        };
        resolve(fileInfo);
      });
    });
  }
});
const upload = multer({ storage:storage }); 

function uploadtogfs(file){
  console.log(file);
  upload.single(file);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。