gpt4 book ai didi

node.js - 在 MongoDB 文档中存储验证器

转载 作者:太空宇宙 更新时间:2023-11-03 22:54:41 24 4
gpt4 key购买 nike

我希望在 Mongo 中拥有灵活的架构,但也希望为后续更新强制执行架构。是否可以将验证存储在文档中,如下所示?我已经尝试过这个,但似乎无法将字符串转换为 Joi 对象。

{
"_id" : ObjectId("53d5dce1fc87899b2b3c2def"),
"name" : {
"validator" : "Joi.string().alphanum().min(3).max(30).required()",
"value" : "Bob"
},
"email" : {
"validator" : "Joi.string().email()",
"value" : "bob@gmail.com"
}
}

最佳答案

大多数时候,将可执行代码存储在数据库中并不是一个好主意。当您意识到已经存储在十亿个文档中的验证器功能需要修改时,您会怎么做?如果有人设法插入带有验证代码的文档,而该验证代码所做的恶意行为不仅仅是验证,该怎么办?

我真的建议您确定文档的类型以及 Node.js 中每种类型的适当验证例程。

但是,当您坚持要求文档本身中的每个文档都有可执行代码时,您可以使用 vm.runInContext(object.validator, object) method 在 Node.js 中运行该代码。 。请记住,这需要访问 Node.js 中的整个文档,因此您无法进行部分更新。另请记住,正如我所说,这可能不是一个好主意

关于node.js - 在 MongoDB 文档中存储验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25009394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com