繁体   English   中英

使用 Geddy 在 Node.js 中声明和使用枚举

[英]Declare and use an enum in Node.js with Geddy

对于我的模型,我希望将枚举作为数据类型,但我不知道该怎么做。 我在来自 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 (我创建的简单模块)

暂无
暂无

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

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