当前位置: 首页 > 知识库问答 >
问题:

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

荀辰钊
2023-03-14

我试图从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个答案

慕麒
2023-03-14

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};

巢德华
2023-03-14

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;
 类似资料:
  • 我使用nodejs和mqlight来运行https://www.npmjs.com/package/mqlight提供的示例代码。 我使用的是NodeJS5.5.0和npm版本是3.3.12。 我使用 null 当我运行上面的代码时,我得到了下面的错误。 请帮助解决这个问题。我使用的是Windows 7 64位操作系统。

  • 问题内容: 我正在使用位于此处的教程:http : //addyosmani.github.io/backbone-fundamentals/#create- a-simple-web-server 并添加了以下代码。 在启动服务器后,我收到一条错误消息,指出访问时的错误,我只是想知道是否有人对这个错误了解很多,因为Express和Node对我来说是新的? 问题答案: 我认为您缺少路线,您需要定义

  • 本文向大家介绍nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error,包括了nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error的使用技巧和注意事项,需要的朋友参考一

  • 问题内容: 我在节点上运行Web服务器,其代码如下 然后我想在以下代码中进行获取请求 我只是从节点开始,我什至不知道这是否是正确的方法。我想测试express和restify的性能。我对我编写的服务器代码进行了apache基准测试,发现矛盾的结果是restify更好。所以我想通过调用远程服务来进行更多测试读写到mongodb。上面的代码是我的起点。我遇到了错误 我是否至少朝写方向前进?我要进行哪种

  • 执行以下操作时产生此错误: 事实上,我正试图在一个培训视频中跟进,所以我对这个有点陌生。据我所知,他正在尝试使用ES6,我知道一些命令,如import,在NodeVer9中本机不可用。这可能是其中之一吗?还有别的选择吗?

  • 问题内容: 我遇到客户端https请求的问题。 片段可以如下所示: 我得到的是错误:证书链中的自签名证书。 使用邮递员时,我可以导入客户端证书和密钥,并且可以毫无问题地使用它。有没有可用的解决方案?我还希望对邮递员如何处理证书和工作方式有所了解。 问题答案: 根据您的问题,我想您正在使用SSL通讯的自签名证书进行开发。 如果是这种情况,请在您正在运行节点的任何地方或直接使用 这指示节点允许不信任的