首页 > 解决方案 > 在nodejs express中上传多个文件,将目标名称作为新的对象ID

问题描述

我正在研究 Nodejs、Express 和 Mongodb 后端(和邮递员)。我想从邮递员那里获取表单数据字段titlesubject其中标题coverPhotoattachment主题是文本字段(在邮递员表单数据中),封面照片和附件是文件。

我想要什么: 我有一个书的模式,比如 -

const bookSchema= new mongoose.Schema({
  title: {
    type: String,
    required: true
  },
  subject{
    type: String,
    required: true,
  },
  coverPhoto{
    type: String,
  },
  attachment{
    type: String
  }
});

和一个路由器,例如 -

router.post('/book',[//express-validator checks] , (req,res) => 
{
    //... some code ...
    let book = new bookSchema({title,subject,coverPhoto,attachment}); // save to schema
});

我想创建一个新的 mongo bookSchema 对象,我将在其各自的字段中保存 coverPhoto 和附件的路径。

问题:我希望每本书根据它们的对象 id 保存在一个单独的目录中(新对象将返回 ie book._id(mongoose id)),例如/uploads/60d4cdc5c6f54c051cf01fed/cover-image.png/uploads/60d4cdc5c6f54c051cf01fed/book.pdf

我已经尽可能多地尝试了 multer,但我无法实现这个期望的输出。如果有人可以帮忙,请做。

标签: node.jsmongodbexpresspostman

解决方案


推荐阅读