在节点中创建文件全局变量

时间:2012-09-09 22:05:44

标签: javascript node.js mongodb mongoose

我的问题是我厌倦了写作:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var mongooseTypes = require("mongoose-types");
mongooseTypes.loadTypes(mongoose, 'url');
var Url = mongoose.SchemaTypes.Url;
var mongooseTypes = require("mongoose-types");
....

在每个模式文件中。有没有办法让你需要在该文件中设置mongoose,Schema和mongooseTypes变量的模块?

我能做到:var mongooseTypes = require(mongoose-global-stuff.js).mongooseTypes; 但是,然后我一次定义一个变量,我没有在这里获得任何东西。

我发现这只是猫鼬的一个问题,因为事情是如何定义的。

1 个答案:

答案 0 :(得分:4)

你可以有一个单独的模块(比如'moongoose-wrapper'):

var mongoose = require('mongoose');
var mongooseTypes = require("mongoose-types");
mongooseTypes.loadTypes(mongoose, 'url');

module.exports.mongoose = mongoose;
module.exports.Schema = mongoose.Schema;
module.exports.mongooseTypes = require('mongoose-types');
module.exports.Url = mongoose.SchemaTypes.Url;

然后像这样使用它:

var mongoose = require('./path/to/mongoose-wrapper');
mongoose.mongooseTypes.doSomethingWithMongooseTypes();
mongoose.Url.doSomethingWithUrl();
...