Есть роутер, при попытке сделать на него 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