首页 > 解决方案 > 如何在mongodb中将文件引用到对象

问题描述

我正在尝试在 mongodb 上上传一张图片,但我希望这张图片被引用到一个任务中,我不知道该怎么做,这里是代码

我在这里上传,如您所见,名称必须是字典

router.post('/',upload.single('dicionario'), async (req, res) => {

    try{
        const { title, description, tasks } = req.body

        const project =  await Project.create({title, description, user: req.userId });

        const post = await Post.create({
            name: req.file.originalname,
            size: req.file.size,
            key: req.file.filename,
            url: ''
        })
       
        //console.log(req.file)
        console.log(req.body)
       await Promise.all(tasks.map( async task => {
            const projectTask = new Task({...task, project: project._id})

           await projectTask.save()

           project.tasks.push(projectTask)
        }))

        await project.save()
        return res.send({ project })
    } catch(err) {
        console.log(err)
        return res.status(400).send({error: 'Error creating new project'})
        
       
    }
})

这是任务的架构

const TaskSchema = new mongoose.Schema({
    
    title:{
        type: String,
        required: true,

    },
    description:{
        type: String,
        required: true
    },
    dicionario:{
        type:  mongoose.Schema.Types.ObjectId,
        ref: 'Post',
        required: true

    },
    project: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'Project',
        required: true
     }, 
   assignedTo: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'User',
        required: true
    },
    completed:{
        type:Boolean,
        required:true,
        default: false
    },
    createdAt:{
        type: Date,
        default: Date.now,
    },
})

如您所见,他引用了字典中的帖子

这里是帖子的架构

const mongoose = require('../../database')
const bcrypt = require('bcryptjs')
   




const PostSchema= new mongoose.Schema({
    name: String,
    size: Number,
    key: String,
    url: String,
    createdAt:{
        type: Date,
        default: Date.now,
    },
})

module.exports = mongoose.model('Post', PostSchema)

这是邮递员中请求的图像

插入图像描述

标签: node.jsmongodbfileupload

解决方案


推荐阅读