有没有办法在整个meanjs堆栈中提供枚举

时间:2014-05-22 19:50:44

标签: javascript node.js angularjs meanjs

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

1 个答案:

答案 0 :(得分:0)

这就是我的想法。

由于定义必须同时适用于客户端和服务器,因此我创建了一个可由客户端代码接收的全局文件夹。

' 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的/应用/模型/ 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在堆栈中的每个位置都可用,并且只定义一次。