Пароль не допускается nodejs + пн go дБ - PullRequest
0 голосов
/ 26 января 2020

Я создаю веб-API с node js и Mongodb. Я попытался создать маршрут, и когда я проверяю его с почтальоном, он говорит:

"пароль" не разрешен

Вот код, который я использовал

для маршрута

router.post('/adminregister', upload.single('profileImage'), async(req, res) => {

const { error } = registerValidation(req.body);
if (error) return res.status(400).send(error.details[0].message);

const emailExists = await User.findOne({ email: req.body.email });
if (emailExists) return res.status(400).send('Email Already Exists');

const user = new User({
    name: req.body.name,
    gender: req.body.gender,
    bday: req.body.bday,
    email: req.body.email,
    phone: req.body.phone,
    image: req.file.path,
    password: req.body.password
});
try {
    const savedUser = await user.save();

    const token = jwt.sign({ _id: user._id }, process.env.TOKEN_SECRET);

    res.header('auth-token', token).send({
        loginstatus: 'olduser',
        token: token
    });
} catch (err) {
    res.status(400).send(err);
}});

Это пользовательская схема

const userSchema = new mongoose.Schema({
name: {
    type: String,
    required: true,
    min: 5
},
gender: {
    type: String,
    required: true
},
bday: {
    type: Date,
    required: true
},
email: {
    type: String,
    required: true,
    max: 255,
    min: 6
},
phone: {
    type: String,
    required: true,
    min: 6
},
image: {
    type: String
        // required:true
},
password: {
    type: String
},
usertype: {
    type: String,
    default: 'user'
},
status: {
    type: String,
    required: true,
    default: 'active'
}});

Когда я делаю запрос через почтальона, он дает мне

но когда я снимаю пароль с почтальона, он работает нормально

enter image description here

Ответы [ 2 ]

1 голос
/ 26 января 2020

В joi, если вы не добавили password, это не позволит. Вам нужно передать параметры

options: {
    allowUnknown: true
  }

, чтобы он работал при вызове метода Joi.validate.

1 голос
/ 26 января 2020

добавьте unknown(true) в вашу схему Joi, чтобы разрешить другие ключевые слова в теле запроса

validationSchema:Joi.object().keys({ 
    name: Joi.string().required(), 
    ... 
}).unknown(true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...