Я пытаюсь загрузить видеофайл в базу данных Mongo.Я использую EJS во внешнем интерфейсе, чтобы выбрать видеофайл.После этого я использую ajax-запрос, как указано ниже, для передачи данных формы на сервер.
$.ajax({
url: '/savepost',
type: 'post',
data: new FormData(this),
processData: false,
contentType: false,
dataType: 'json',
})
Логика / savepost приведена ниже.Здесь console.log (file) извлекает «неопределенное» значение для видеофайлов, в то время как оно хорошо работает с файлами изображений.Приветствуется любая помощь по загрузке видеофайлов с помощью multer.
router.post('/savepost',upload.single('upload'),function(req,res,next) {
var body = req.body.body;
var file = req.file;
console.log(file);
var userdata = {userID: req.user._id, fullname: req.user.fullname, image: req.user.image};
if(file){
cloudinary.uploader.upload("./public/images/posts/" + file.filename, function (result) {
file.filename = result.secure_url;
async.waterfall([
function (callback) {
var newPost = new Post();
newPost.body = body.trim();
newPost.image = file.filename;
newPost.owner = userdata;
newPost.save((err, data) => {
if (err) res.send({msg: "Something went wrong", success: false});
if (data) callback(null, data);
});
},
function (data, callback) {
User.findOneAndUpdate(
{_id: req.user._id},
{
$push:
{
posts: {
post: data._id,
body: data.body,
image: data.image
}
}
},
(err, user) => {
if (err) res.send({msg: "Something went wrong", success: false});
if (user) res.send({msg: "Data Saved", post: data, success: true});
}
);
}
]);
});
}