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

如何在javascript对象中设置属性的类型,就像猫鼬模式设计一样。?

宗政洋
2023-03-14

我正在尝试在javascript中设置对象键的类型。var obj={};obj。名称=字符串;obj。年龄=人数;obj。批准=错误;这更像是设计猫鼬模式。如。

var mongo = require('mongoose');
var mySchema = new mongo.Schema({
"name":{type: String},
"version":{type: String},
"author":{type:String}
});

以便在保存对象的同时检查猫鼬的类型。我怎么能执行这个功能与正常的javascript对象,同时声明它。我希望你们都理解我想要实现的目标。

共有1个答案

訾安邦
2023-03-14

您需要使用JSON模式验证器,如下所示:https://www.npmjs.com/package/ajv

简短示例:

var Ajv = require('ajv');
var ajv = Ajv();
var schema = {
  "type": "object",
  "properties": {
    "foo": { "type": "number" },
    "bar": { "type": "string" }
  },
  "required": [ "foo", "bar" ]
};

var data = { "foo": 1 };

var validate = ajv.compile(schema);

console.log(validate(data)); // false
 类似资料:
  • 在前端,我有3个层次结构。 顶层显示一个测试摘要,包含统计信息,如%通过/失败、各种标签、运行标识等。 第二级由测试套件的各个部分组成,这些部分可以通过顶级运行id访问。其中包含测试的名称,特定的测试通过/失败。 第三级是实际测试本身,包括报告、通过/失败状态等。 我使用的是平均堆栈,我想知道使用1、2或3种不同的Mongoose模型在MongoDB中存储数据的利弊。我知道在数组中使用嵌入式文档的

  • 在开发API时,我经常需要在mongoDb查询结果中设置额外的属性。但是我不能以一种好的方式去做。例如 模型 查询 在这里,在我从mongoDb获得结果之后,我想将breed属性设置为result,但是我不能这样做,因为该属性没有在模式中定义 所以为了设置一个额外的属性,我使用了hack 我不认为这是一个很好的编码方式。请给一个更好的设置属性的方法,并解释黑客是如何工作的。

  • 我有这个猫鼬帖子模式。 在验证中,类型为,

  • 我想为用户设计一个清单。基本上,我尝试创建一个清单,其中包含一个用户id和一个包含每个项目编号的项目列表。 存在我的集合“项”的架构: 我不能设计一个库存集合,在那里我可以很容易地更新每个项目的数量并添加新项目。

  • 问题内容: 我在这里看到了很多关于这个问题的答案,但是我还是不明白(也许是因为他们使用了更多“复杂”的例子)……所以我试图做的是为“客户”建立一个模式将具有两个具有嵌套“子字段”的字段,其他字段可能重复。这是我的意思: 电话 和 电子邮件 可能是一个数组。和地址将不会重复,但是您会看到一些子字段。 我该如何工作? 问题答案:

  • 问题内容: 当用户向我的API注册时,他们将返回一个用户对象。在返回对象之前,我删除了散列的密码和salt属性。我必须用 因为当我尝试 对象属性仍然存在并返回。 这是为什么? 问题答案: 要使用它,您需要通过调用将模型文档转换为普通的JavaScript对象,以便您可以自由地操作它: