Joigoose是一个npm包,它可以帮助我们在Node.js和Mongoose之间自动转化Joi对象。这个包可以让我们更加方便地使用Joi对请求的有效性进行验证以及对Mongoose模型的验证。
在本篇文章中,我们将会学习Joigoose的使用方法,包括安装,配置和使用。
安装Joigoose
在开始使用Joigoose前,需要先安装Joigoose。可以在终端中使用以下命令进行安装:
--- ------- --------
如果你使用的是 yarn 包管理工具,使用以下命令进行安装:
---- --- --------
安装成功后,可以在项目中使用Joigoose。
配置Joigoose
在使用Joigoose之前,需要先配置它。我们需要引入 Joi 和 Mongoose,然后使用Joigoose将 Joi 转化为 Mongoose 的 Schema 。
----- --- - --------------- ----- -------- - -------------------- ----- -------- - ------------------------------
接下来,需要定义Joi Schema和Mongoose Schema对象。这可以通过以下代码实现:
----- ------ - ------------ ----- ------------------------ ---- ------------------------ ------ -------------------------------- --- ----- -------------- - --- ------------------------------------------
在这段代码中,我们首先定义了一个Joi Schema,并使用了 .required()
和 .email()
方法来验证每个属性的有效性。然后,我们使用Joigoose将Joi Schema转化为Mongoose Schema。最后,我们将新的Mongoose Schema存储在 mongooseSchema
变量中。
使用Joigoose
我们已经成功地将Joi Schema转化为Mongoose Schema,现在可以使用它对请求进行验证。
---------------- ----- ---- -- - ----- ---------- - -------------------------- -- ------------------ - ------ ---------------------- ------ ----------------------------------- --- - -- ----------- ---
在这段代码中,我们使用了Joi的 .validate()
方法来验证请求体的有效性,如果验证失败则返回了一个400的错误。如果验证成功,则可以将请求体存储在数据库中。
总结
本文我们介绍了npm包Joigoose的使用方法,包括安装、配置和使用。我们首先安装了Joigoose,然后在配置中使用了Joi和Mongoose来创建Joi Schema和Mongoose Schema对象。最后,我们使用Mongoose Schema对象对请求进行了有效性验证。通过使用Joigoose可以更加方便地进行Joi验证和Mongoose模型验证,希望这篇教程对你有所帮助。
示例代码
以下是一个完整的示例代码。
----- --- - --------------- ----- -------- - -------------------- ----- ------- - ------------------- ----- -------- - ------------------------------ ----- --- - ---------- ----- ------ - ------------ ----- ------------------------ ---- ------------------------ ------ -------------------------------- --- ----- -------------- - --- ------------------------------------------ ----- ---- - ---------------------- ---------------- ------------------------ ------------------ ----- ---- -- - ----- ---------- - -------------------------- -- ------------------ - ------ ---------------------- ------ ----------------------------------- --- - ----- - ----- ---- ----- - - --------- ----- ---- - --- ------ ----- ---- ----- --- --------------- -- - -- ----- - ------ ---------------------- ------ ------ ------ ----- --- - ------ ---------------------- -------- ----- ------- ------------- --- --- --- -------------------------------------------- - ---------------- ----- ------------------- ---- -- ----- -- - -- ----- - ----------------------- ------- ----- - ---- - --------------------- ------------ ---------------- -- -- ------------------- ------- -- ---- -------- - ---
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5eedb3b3b5cbfe1ea06111b1