首页 > 解决方案 > 在不创建对象的情况下如何调用 Joi 类的方法?

问题描述

我尝试使用 Joi NPM 模块,在文档中它声明它是一个类,但它在没有创建类对象的情况下使用,这是var joi = new Joi();如何工作的?

我对类的工作原理有一点了解,可以通过创建类实例或将类声明为静态来使用它。下面是代码。

const Joi = require('@hapi/joi');
 function validation(args) {
    const schema = {
        "name": Joi.string().min(3).required()
    };
    return Joi.validate(args,schema);

 }
app.put('/api/courses/:id',(req,res)=>{
    const course = courses1.find(c => c.id === parseInt(req.params.id));
    if(!course){
       res.status(404).send('course not found...');
    }
    else{
        const {error} = validation(req.body);
        if(error){
            res.status(400).send(error.details[0].message);
        }
        else{
            course.name = req.body.name;
            res.status(200).send(courses1);
        }   
    }
});

标签: javascriptnode.jsexpressjoi

解决方案


// make new component validation.js

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


const signupValidation = (data) => {`enter code here`
    const schema = Joi.object({
        name: Joi.string().required(),
        email: Joi.string().required().email(),
       
        password: Joi.string().required(),
        role:Joi.string(),
    })
    return schema.validate(data)
}

module.exports.signupValidation = signupValidation ; 



//now you can import in your required component
import {signupValidation } from './validation'

    

推荐阅读