如何在javascript对象中设置属性的类型,就像mongoose schema design一样。

时间:2016-04-30 10:18:02

标签: javascript node.js mongodb mongoose

我正在尝试在javascript中为对象的键设置类型。     var obj = {};     obj.name = string;     obj.age =数字;     obj.approve = false; 它更像是设计mongoose模式。例如

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

这样在保存对象mongoose时检查类型。 如何在声明时使用普通的javascript对象执行此功能。这样我就可以对对象的传入API请求执行类型检查。 我希望你们都明白我想要达到的目标。

1 个答案:

答案 0 :(得分:1)

您需要使用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