Проблема с mongosee и multer в экспрессе (ошибка проверки в Post) - PullRequest
0 голосов
/ 21 апреля 2019

Я новичок в 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, приложение не работает, но если я оставляю его, приложение работает. Я хочу удалить фильтр, потому что я не загружаю изображения или другие типы файлов.

...