Node.js 如何在Nodejs中自动补偿mongoDB值?

Node.js 如何在Nodejs中自动补偿mongoDB值?,node.js,mongodb,amazon-s3,Node.js,Mongodb,Amazon S3,我正在使用AWS构建一个nodejs应用程序。在这里,我通过POST将文件保存到AWS S3。在这里,我想将保存在S3中的文件的位置URL自动保存到“filename”中,这是MongoDb中的一个特性 型号/VIDEO.JS 路由器/VIDEO-UPLOAD.JS 但我无法具体保存参数。我要保存的参数必须在“params”中。我该怎么做请帮忙 const mongoose = require('mongoose'); const Schema = mongoose.Schema; const

我正在使用AWS构建一个nodejs应用程序。在这里,我通过POST将文件保存到AWS S3。在这里,我想将保存在S3中的文件的位置URL自动保存到“filename”中,这是MongoDb中的一个特性

型号/VIDEO.JS

路由器/VIDEO-UPLOAD.JS

但我无法具体保存参数。我要保存的参数必须在“params”中。我该怎么做请帮忙

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const VideoSchema = new Schema({
    fileName: {
        type: String,
        require: true
    },
    createdAt: {
        type: Date,
        default: Date.now
    }
});

module.exports = mongoose.model('video', VideoSchema);
require('dotenv/config');
var express = require('express');
var router = express.Router();
const multer = require('multer');
const AWS = require('aws-sdk');
const uuid = require('uuid');

const Video = require('../models/Video');

const s3 = new AWS.S3({
    accessKeyId: process.env.AWS_ID,
    secretAccessKey: process.env.AWS_SECRET
})

const storage = multer.memoryStorage({
     destination: function(req, file, callback) {
        callback(null, '');
    }
 });

 const upload = multer({ storage }).single('image')

 router.post('/', upload, (req, res) => {
    const video = new Video(req.body.filename);
    let myFile = req.file.originalname.split(".");
    const fileType = myFile[myFile.length - 1];

    const params = {
        Bucket: process.env.AWS_BUCKET_NAME,
        Key: `${uuid}.${fileType}`,
        Body: req.file.buffer,
        Location: req.file.path
    }

    s3.upload(params, (error, data) => {

        if (error) {
            res.status(500).send(error)
        }
            res.status(200).send(data)
        });

        video.save({
            filename: params.Key
        });

    });


router.get('/', (req, res) => {
    const promise = Video.find({});

    promise.then((data) => {
        res.json(data);
    }).catch((err) => {
        res.json(err);
    })
});

router.delete('/:video_id', (req, res, next) => {
    const promise = Video.findByIdAndDelete(req.params.video_id);

    promise.then((data) => {
        res.json('Successfully deleted.');
    }).catch((err) => {
        res.json(err);
    })
});

module.exports = router;