Node.js 如何在Nodejs中自动补偿mongoDB值?
我正在使用AWS构建一个nodejs应用程序。在这里,我通过POST将文件保存到AWS S3。在这里,我想将保存在S3中的文件的位置URL自动保存到“filename”中,这是MongoDb中的一个特性 型号/VIDEO.JS 路由器/VIDEO-UPLOAD.JS 但我无法具体保存参数。我要保存的参数必须在“params”中。我该怎么做请帮忙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
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;