简体   繁体   English

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

[英]How to set type of a property in javascript object, like mongoose schema design do.?

I am trying setting type for a key of an object in javascript. 我正在尝试为javascript中的对象的键设置类型。 var obj ={}; var obj = {}; obj.name = string; obj.name =字符串; obj.age = number; obj.age =数字; obj.approve = false; obj.approve = false; it is more like designing mongoose schema. 它更像是设计猫鼬模式。 eg. 例如。

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

so that while saving object mongoose check the type. 这样在保存对象猫鼬的同时检查类型。 How can i perform this functionality with normal javascript object while declaring it. 我如何在声明它的同时使用普通的javascript对象执行此功能。 so that i can perform type checking for incoming API request for an object. 这样我就可以为对象的传入API请求执行类型检查。 I hope you all understand what i want to achieve. 希望大家都明白我想要实现的目标。

You need to use JSON schema validator, like following: https://www.npmjs.com/package/ajv 您需要使用JSON模式验证程序,如下所示: https : //www.npmjs.com/package/ajv

Short example: 简短示例:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM