Node.js 如何在mongodb中将文件引用到对象

Node.js 如何在mongodb中将文件引用到对象,node.js,mongodb,file,upload,Node.js,Mongodb,File,Upload,我正试图在mongodb上上传一个图像,但我想把这个图像引用到一个任务,我不知道怎么做,这里是代码 在这里我上传,正如你所看到的名字必须是字典 router.post('/',upload.single('dicionario'), async (req, res) => { try{ const { title, description, tasks } = req.body const project = await Project.cre

我正试图在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,
    },
})
如你所见,他引用了词典中的一篇文章

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 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)
这是邮递员请求的图像