我正在尝试使用meanjs堆栈,并且我试图在一个地方声明一个类似枚举的数组,并使它在项目中的任何地方都可用,从Mongo一直到Angular。实现这一目标的优雅方式是什么?
答案 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在堆栈中的每个位置都可用,并且只定义一次。