metrojs中未捕获的引用错误

uncaught reference error in meteorjs

本文关键字:引用 错误 metrojs      更新时间:2023-09-26

我正在尝试用metro.js构建一个应用程序。在lib目录中,我有一个文件collections.js,看起来像:

var Datum = new Meteor.Collection('datum');
if (Meteor.isServer && Datum.find().count() == 0) {
var datum = [{...}]
    _.each(datum, function(data) {
  Datum.insert(data);
});
}    

然后在client目录中的.js文件中看起来像:

Template.datum.helpers({
  datum: function() {return Datum.find(); }
}); 

当我尝试运行该应用程序时,我会得到Uncaught ReferenceError: Datum is not defined和一个空白页面。我一辈子都搞不清楚为什么会发生这种事。有什么建议或帮助吗?我肯定是我在做一些愚蠢的事情,但我就是搞不清是什么。

删除var关键字。

 


 

Meteor中的所有javascript文件都嵌入在(function(){...})()模式中,因此使用var关键字定义的所有变量都是该文件的本地变量。如果您想创建一个全局变量,对整个应用程序可见,请在不使用关键字的情况下进行创建。

所以,不是

var Datum = new Meteor.Collection('datum'); // local

应该有

Datum = new Meteor.Collection('datum'); // global