我有一个非常小的nodejs应用程序。在这个应用程序中,我在app.js中定义了一个模型对象,如:
global.model = {
name: 'Foobar'
};
模型不会持久保存到任何存储空间,而是始终保存在内存中。我的要求是,能够在我的应用程序的任何模块中阅读和修改此模型。
我读到使用global
是不好的做法。有什么更好的方法?通过出口?你能解释一下吗?
答案 0 :(得分:2)
您可以拥有一个用于创建和存储模型的模块。然后,任何其他想要获取模型的模块都可以require()
模型模块,然后在其上调用方法来获取单个共享模型。
在model.js中:
var mymodel = {
name: 'Foobar'
}
module.exports.getModel = function() { return mymodel;}
在任何其他想要获取模型的模块中:
var mymodel = require('./model').getModel();
如果您的模型模块通常不会用于其他事情,那么您可以像这样简化它:
var mymodel = {
name: 'Foobar'
}
module.exports = function() { return mymodel;}
在任何其他想要获取模型的模块中:
var mymodel = require('./model')();