Почему возвращается ошибка 500?

Есть роутер, при попытке сделать на него POST-запрос возвращается ошибка 500.

Я понимаю, что обрабатывается блок catch, но не понимаю почему. В чем моя ошибка?

const { Router } = require('express');
const User = require('../models/User');
const config = require('config');
const cors = require('cors');
const bodyParser = require('body-parser');

const router = Router();

const jsonParser = bodyParser.json();

const corsOptions = {
    origin: config.get('CORS.whiteList' ),
    optionsSuccessStatus: config.get('CORS.optionsSuccessStatus')
}

router.post('/login',
    cors(corsOptions),
    jsonParser,
    async(req, res) => {
        try {
            const email = req.body.email;
            console.log(email)
            const candidate = await User.findOne({ email: email });
            if (isEmpty(email)) {
                console.log(3)
                return res.status(400).json({
                    msg: 'Некоректные данные при регистрации'
                });
            }

            if (candidate) {
                return res.status(400).json({
                    msg: 'Такой email уже зарегестрирован'
                });
            }

            const user = new User({
                email
            });

            await user.create();

        } catch (err) {
            console.log(3)
            res.status(500).json({
                msg: 'Что-то пошло не так, попробуйте снова',
                err: err.stack
            });
        }

        function isEmpty(str) {
            return (!str || 0 === str.length);
        }
    }
);

module.exports = router;


Как я выяснил, проблема в строках

const user = new User({
    email
});

await user.create();


Почему-то user.create is not a function
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы