Я пытался загрузить видео с использованием cloudinary, но, похоже, выдает ошибку с несколькими сообщениями, что Unclear.it просто показывает MulterError: Неожиданное поле в wrappedFileFilter (/app/node_modules/multer/index.js:40: 19). Я дал форму и почтовый маршрут в приложении ниже. ошибка
MulterError: Unexpected field
2020-04-28T09:27:08.315213+00:00 app[web.1]: at wrappedFileFilter (/app/node_modules/multer/index.js:40:19)
2020-04-28T09:27:08.315214+00:00 app[web.1]: at Busboy.<anonymous> (/app/node_modules/multer/lib/make-middleware.js:114:7)
2020-04-28T09:27:08.315215+00:00 app[web.1]: at Busboy.emit (events.js:310:20)
2020-04-28T09:27:08.315215+00:00 app[web.1]: at Busboy.emit (/app/node_modules/busboy/lib/main.js:38:33)
2020-04-28T09:27:08.315216+00:00 app[web.1]: at PartStream.<anonymous> (/app/node_modules/busboy/lib/types/multipart.js:213:13)
2020-04-28T09:27:08.315216+00:00 app[web.1]: at PartStream.emit (events.js:310:20)
2020-04-28T09:27:08.315217+00:00 app[web.1]: at HeaderParser.<anonymous> (/app/node_modules/dicer/lib/Dicer.js:51:16)
2020-04-28T09:27:08.315217+00:00 app[web.1]: at HeaderParser.emit (events.js:310:20)
2020-04-28T09:27:08.315218+00:00 app[web.1]: at HeaderParser._finish (/app/node_modules/dicer/lib/HeaderParser.js:68:8)
2020-04-28T09:27:08.315218+00:00 app[web.1]: at SBMH.<anonymous> (/app/node_modules/dicer/lib/HeaderParser.js:40:12)
2020-04-28T09:27:08.315218+00:00 app[web.1]: at SBMH.emit (events.js:310:20)
2020-04-28T09:27:08.315219+00:00 app[web.1]: at SBMH._sbmh_feed (/app/node_modules/streamsearch/lib/sbmh.js:159:14)
2020-04-28T09:27:08.315219+00:00 app[web.1]: at SBMH.push (/app/node_modules/streamsearch/lib/sbmh.js:56:14)
2020-04-28T09:27:08.315219+00:00 app[web.1]: at HeaderParser.push (/app/node_modules/dicer/lib/HeaderParser.js:46:19)
2020-04-28T09:27:08.315220+00:00 app[web.1]: at Dicer._oninfo (/app/node_modules/dicer/lib/Dicer.js:197:25)
2020-04-28T09:27:08.315220+00:00 app[web.1]: at SBMH.<anonymous> (/app/node_modules/dicer/lib/Dicer.js:127:10)
почтовый маршрут
var express = require("express");
var router = express.Router();
var moment = require("moment");
var Campground = require("../models/campground");
var User = require("../models/user");
var middleware = require("../middleware");
var multer = require('multer');
var storage = multer.diskStorage({
filename: function(req, file, callback) {
callback(null, Date.now() + file.originalname);
}
});
var imageFilter = function(req, file, cb) {
if (!file.originalname.match(/\.(jpg|jpeg|png|gif|mp4)$/i)) {
return cb(new Error('Only image/video files are allowed!'), false);
}
cb(null, true);
};
var upload = multer({ storage: storage, fileFilter: imageFilter })
var cloudinary = require('cloudinary');
cloudinary.config({
cloud_name: 'iatneh1',
api_key: process.env.CLOUDINARY_API_KEY,
api_secret: process.env.CLOUDINARY_API_SECRET
});
router.post("/c", middleware.isloggedin, upload.single('video'), function(req, res) {
cloudinary.v2.uploader.upload(req.file.path, function(result) {
req.body.ca.video = result.secure_url;
req.body.ca.format = result.format;
req.body.ca.author = {
id: req.user._id,
username: req.user.username
}
req.body.ca.created = new Date();
Campground.create(req.body.ca);
res.redirect('/c/' + campground.id);
});
});
module.exports = router;
форма
<div class="container">
<form action="/c" method="post" enctype="multipart/form-data">
<h2 style="text-align: center;">Add new entries</h2>
<div style="width: 30%; margin: 20px auto;">
<div class="form-group"><input class="form-control" type="text" name="ca[name]" placeholder="name">
</div>
<div class="form-group">
<input class="form-control" type="number" name="ca[price]" placeholder="Price">
</div>
<div class="form-group">
<label for="image">Image</label>
<input type="file" id="image" name="images" accept="image/*,video/*" multiple>
</div>
<div class="form-group">
<label for="image">Video</label>
<input type="file" name="video" accept="file_extension|audio/*|video/*|image/*|media_type">
</div>
<div class="form-group">
<input type="text" name="ca[description]" class="form-control" placeholder="description">
</div>
<div class="form-group">
<button class="btn btn-primary" type="submit">submit!!</button></div>
<a href="/c">Go back</a>
</div>
</form>
</div>