对于我的模型,我希望将枚举作为数据类型,但我不知道该怎么做。我在 geddyjs.org 或谷歌的文档中找不到任何有用的东西。
模型可以这样定义:
var fooModel= function () {
this.defineProperties({
fooField: {type: 'datatype'},
.............................
});
}
我应该在哪里以及如何定义枚举以及如何使用它?
对于我的模型,我希望将枚举作为数据类型,但我不知道该怎么做。我在 geddyjs.org 或谷歌的文档中找不到任何有用的东西。
模型可以这样定义:
var fooModel= function () {
this.defineProperties({
fooField: {type: 'datatype'},
.............................
});
}
我应该在哪里以及如何定义枚举以及如何使用它?
请记住,Node 只是 javascript,而 javascript(据我所知)没有枚举。但是你可以伪造它,这里讨论:JavaScript 中的枚举?
你应该使用像这样的对象;
const kindOf = {
TYPE1: 'type1',
TYPE2: 'type2',
TYPE3: 'type3'
}
let object_type = kindOf.TYPE1;
我首选的节点枚举包是https://www.npmjs.com/package/enum。
这是一个基本用法(从文档中复制):
// use it as module
var Enum = require('enum');
// or extend node.js with this new type
require('enum').// define an enum with own values
var myEnum = new Enum({'A': 1, 'B': 2, 'C': 4});
然后您可以使用例如一个简单的 switch case 语句,例如:
let typeId = 2;
switch (typeId) {
case myEnum.A.value:
//Do something related to A.
break;
case myEnum.B.value:
//Do something related to B.
break;
case myEnum.C.value:
//Do something related to C.
break;
default:
//Throw error
break;
}
有一些模块可以做到这一点,其中之一是https://npmjs.org/package/simple-enum(我创建的简单的一个)