【发布时间】:2020-12-08 20:11:20
【问题描述】:
我尝试使用 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);
}
}
});
【问题讨论】:
-
文档在哪里?它不在 README 或 API 参考中。您是否查看了实现以了解这些方法的作用?
-
我进行了查找,但没有从中得到太多,因为我是新手,这需要时间,但我很快就会到达那里,如果你能帮助我,那将是一个很大的帮助这个。
-
如果您的代码有特定问题,请询问,但如果您只是对实现感到好奇,那么它对于 SO 来说太宽泛了;目前还不清楚什么让您感到困惑。
-
你看到,为了访问类方法,必须创建它的实例,但在这种情况下,Joi 的实例不是像 new Joi() 那样创建的,我怎样才能像 validate 方法一样直接使用它的方法,这就是我要问的问题,这让我的概念有些混乱。
-
您也不必创建 jQuery 的实例,但您仍然可以在其上调用方法。或者像
JSON.stringify这样的东西。这些是原型上的方法,可以通过多种方式创建。
标签: javascript node.js express joi