是否有一种方法可以使枚举在整个meanjs堆栈中可用?

Is there a way to make an enum available all over the meanjs stack

本文关键字:meanjs 堆栈 枚举 可以使 方法 一种 是否      更新时间:2023-09-26

我正在尝试使用meanjs堆栈,我试图在一个地方声明一个像数组一样的enum,并使其在项目中的任何地方都可以从Mongo一直到Angular。实现这一目标的优雅方式是什么?

这就是我想出来的。

由于定义必须对客户端和服务器都可用,所以我创建了一个全局文件夹,可以由客户端代码访问。

"myapp/公共/全局变量/types.js"

'use strict';
(function (exports){
exports.PlaceTypes = ['restaurant', 'house', 'park'];
})(typeof exports === 'undefined' ? this[ApplicationConfiguration.applicationModuleName] = {} : exports);

为了使其可访问,我必须编辑'myapp/config/env/all.js',在模块行

之前添加'public/globals/*'
...
    js: [
            'public/config.js',
            'public/application.js',
            'public/globals/*',
            'public/modules/*/*.js',
            'public/modules/*/*[!tests]*/*.js'
        ],
...

在模型中我可以导入它

"myapp/app/模型/place.server.model.js"

var PlaceTypes = require('../../public/globals/types').PlaceTypes;
/**
 * Place Schema
 */
var PlaceSchema = new Schema({
    name: {
        type: String,
        enum: PlaceTypes,
        required: 'Please fill Place name',
        trim: true
    }
});

现在PlaceTypes在堆栈中的任何位置都可用,并且只定义一次。