Meteor 在server/和private/中定义全局变量有什么区别?
例如,我想在Meteor启动时将一些init json数据插入数据库。我有两种方法 1。在server/init.js中定义它Meteor 在server/和private/中定义全局变量有什么区别?,meteor,Meteor,例如,我想在Meteor启动时将一些init json数据插入数据库。我有两种方法 1。在server/init.js中定义它 server/data.js: data1 = [{ "data": "to insert"}]; server/init.js Meteor.startup(function() { insertToDb(data1); }); 2。在private/data.json中定义它 private/data.json [{ "data": "to insert"}];
server/data.js:
data1 = [{ "data": "to insert"}];
server/init.js
Meteor.startup(function() { insertToDb(data1); });
2。在private/data.json中定义它
private/data.json
[{ "data": "to insert"}];
server/init.js
Meteor.startup(function() {
var data2 = Assets.getText("data.json");
insertToDb(data2);
});
A.data1
是否一直有效?如果是这样,如果数据很大,会浪费一些内存吗
B.利与弊是什么
C.
private
?的一般用途或场景与您是从文件加载数据还是静态定义数据关系不大,与您的数据变量范围关系更大。如果全局定义某个对象,则是,它将在进程的生命周期内存储在内存中。如果在函数中本地定义它,那么一旦函数退出,所有内存都将被释放
例如,您可以执行以下操作:
server/init.js
Meteor.startup(function() {
var data1 = [{ "data": "to insert"}];
insertToDb(data1);
});
话虽如此,如果你想阅读,这里有一个观点:
从逻辑上讲,任何大数据块都不应该静态定义。将其保存在单独的文件中,以便于更新。本地化文件就是一个例子