@Pavel_Tkachenko
Да, я преступник. Моё преступление — любопытство

Почему Express возвращает пустой ответ?

Есть маршрут на котором клиент проходит регистрацию... Но вот проблема в том, что периодически ответ от сервера приходит пустым, не понятно с чем это может быть связанно. Вот сам код :
// Require modules
var express                 = require('express');
var router                  = express.Router();
var mongoose                = require('mongoose');
var UserSchema              = require('../db/user');
var User                    = mongoose.model('user', UserSchema);
var validator               = require('validator');
var createError             = require('http-errors');

// Routes
router.route('/')
    .get((req, res, next) => {
        res.send(req.originalUrl);
    })
    .post((req, res, next) => {
        if( validator.isEmail(req.body.email) && 
            validator.isLength(req.body.password, 6, 18) &&
            validator.isLength(req.body.firstname, 3, 18) &&
            validator.isLength(req.body.lastname, 6, 18)) 
            {
            let user = {
                email       : req.body.email,
                password    : req.body.password,
                firstname   : req.body.firstname,
                lastname    : req.body.lastname,
                fathername  : req.body.fathername ? req.body.fathername : ''
            }
            new User(user).save()
                .then(() => {
                    res.send('Ok');
                })
                .catch((err) => {
                    if(err.code == 11000) {
                        res.status(422).send('User exists');
                    }
                    else {
                        err = createError(500)
                        return next(err)
                    }
                })
        }
        else {
            res.status(422).send('Invalid data');
        }
    })
module.exports = router;

У меня есть подозрения что это отваливается каким то образом validator... Потому что сам post запрос попадает в обработчик. Или мб вынести проверку в отдельную функцию?
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
@Pavel_Tkachenko Автор вопроса
Да, я преступник. Моё преступление — любопытство
Короче говоря, сам отвечаю на свой вопрос... Все оказалось гораздо проще, validator без уведомления не срабатывает если данные undefined...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@grinat
Сделай
try {
if(validadot...) {
await User(user).save()
}
} catch (err) {
console.error(err)
if (err.code == 11000) {

}
return next(createError(500))
}

Если с вадиторам проблема сразу увидишь
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы