提问者:小点点

错误:nodejs中的“UnhandledPromiseRejectionWarning:Error:Invalid message Options”


我试图从auth.js调用在文件validation.js中定义的registerValidation函数,但出现以下错误

UnhandledPromiseRejectionWarning:错误:无效消息选项

有谁能告诉我为什么和如何纠正吗?

auth.js

const router = require("express").Router();
const User = require("../model/User")
const  {registerValidation} = require("./validation")


router.post('/register', async(req, res)=>{

    //Lets validate the data
//error appears here
    const {error} = registerValidation(req.body);
    if(error){
        return res.status(400).send(error.details[0].message)
    }
    const user = new User({
        name:req.body.name,
        email:req.body.email,
        password:req.body.password
    });
    try{
        const savedUser = await user.save();
        res.send(savedUser); 
    }catch(err){
        res.status(400).send(err)
    }
})




module.exports = router;

validation.js

//VALIDATION
const Joi = require("@hapi/joi")


const registerValidation = (data) => { 
    const schema = Joi.object({
        name:Joi.string().min(6).required(),
        email:Joi.string().min(6).required().email(),
        password:Joi.string().min(6).required()
    });
    return schema.validate(data, schema)
}


const loginValidation = data =>{
    const schema = Joi.object({
        email:Joi.string().min(6).required().email(),
        password:Joi.string().min(6).required()
    });
    return schema.validate(data, schema)
}


module.exports =  {registerValidation, loginValidation};

共2个答案

匿名用户

validation.js文件需要如下所示:

const registerValidation = (data) => {...}
const loginValidation = (data) => {...}

module.exports = {
  registerValidation,
  loginValidation
}

或者,您可以执行以下操作:

const registerValidation = (data) => {...}
const loginValidation = (data) => {...}

module.exports.registerValidation = registerValidation;
module.exports.loginValidation = loginValidation;

匿名用户

registerValidation和loginValidation函数应该如下所示

   const Joi = require("@hapi/joi");

const registerValidation = (data) => {
     console.log("body ", data)
    const schema = Joi.object({

        name:Joi.string().min(6).required(),
        email:Joi.string().min(6).required().email(),
        password:Joi.string().min(6).required()
    });
    
    return  schema.validate(data)  //change here
}

const loginValidation = data =>{
    const schema = Joi.object({
        email:Joi.string().min(6).required().email(),
        password:Joi.string().min(6).required()
    });
    return schema.validate(data)     //change here
}


module.exports =  {registerValidation, loginValidation};