Я новичок в nodejs и выражаю, моя проблема в том, что, когда я делаю сообщение в своей форме (мое приложение - простая форма), выводится сообщение об ошибке: «Ошибка проверки сообщения: name: Path name
требуется. , фамилия: Путь surname
требуется., адрес электронной почты: Путь email
требуется., запрос: Путь query
требуется. " Но когда я добавляю Multer Middleware, приложение работает. Это так редко для меня.
Приложение очень простое. Это форма, когда я отправляю сообщение, сервер MongoDB сохраняет сообщение.
1009 * промежуточное программное *
// Multer
const storage = multer.diskStorage({
destination: path.join(__dirname, 'public'),
})
app.use(multer({storage}).single('image'));
//
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());
app.use(cors());
Публиковать сообщения
router.post('/', async (req, res) => {
const { name, surname, email, phone, query } = req.body;
const newMessage = new Message ({ name, surname, email, phone, query });
try {
await newMessage.save();
res.json({ message: 'message Saved' });
}catch (err) {
console.log(err.message)
}
});
module.exports = router;
API
class MessageService {
async postMessage(message){
const res = await fetch(`${this.URI}`, {
method: 'POST',
body: message
});
const data = await res.json();
console.log(data);
}
}
export default MessageService;
в пользовательском интерфейсе
class UI {
async addNewMessage(message) {
await messageService.postMessage(message);
this.clearMessageForm();
};
clearMessageForm() {
document.getElementById('message-form').reset();
};
};
export default UI;
In app.js
document.getElementById('message-form')
.addEventListener('submit', e =>{
const name = document.getElementById('name').value;
const surname = document.getElementById('surname').value;
const email = document.getElementById('email').value;
const phone = document.getElementById('phone').value;
const query = document.getElementById('query').value;
const formData = new FormData();
formData.append('name', name);
formData.append('surname', surname);
formData.append('email', email);
formData.append('phone', phone);
formData.append('query', query);
const ui = new UI();
ui.addNewMessage(formData);
e.preventDefault();
});
Это часть кода, связанная с проблемой. Если я удаляю multer, приложение не работает, но если я оставляю его, приложение работает. Я хочу удалить фильтр, потому что я не загружаю изображения или другие типы файлов.