после того, как я искал эту ошибку и не смог найти ответ, я решил спросить.
wrapData: function() {
var fd = new FormData(),
image;
_.each(this.models, function(model, i) {
console.log(model.toJSON());
if (model.get('cover')) {
fd.append("portada", model.get('file'));
}
image = model.get('file');
fd.append("images", image, image.name);
});
return fd;
},
sync: function(method, model, options) {
var opts = {
url: this.url(),
success: function(response) {
if (options.success || false) {
options.success(data);
}
console.log(response);
return response;
}
};
switch (method) {
case "create":
opts.type = "POST";
opts.data = this.wrapData();
opts.processData = false;
opts.contentType = false;
break;
default:
opts.type = "GET";
}
return $.ajax(opts);
},
Приведенный ниже код пытается загрузить несколько изображений на сервер с помощью backbonejs.Поэтому, когда пользователь не выбирает одно изображение в качестве обложки, запрос получает успех (сохранение данных и ответ возврата), но, когда пользователь выбирает одно, запрос получает ошибку
if (model.get('cover')) {
fd.append("portada", model.get('file'));
}
, и NodeJS печатает это:
name: 'MulterError',
message: 'Unexpected field',
code: 'LIMIT_UNEXPECTED_FILE',
field: 'portada'
Но, когда я пытаюсь сделать то же самое от Insomnia (REST-клиент), я не могу понять, как получен запрос.
Вот запрос от Insomnia и его ответ
Я знаю, что multer выдает эту ошибку, потому что имя 'portada' вместо имени 'images'.Но я не понимаю, почему это работает от бессонницы, а от внешнего интерфейса - нет.Вместе я пытаюсь сделать то же самое.
Буду признателен за вашу помощь.