从客户端文件夹访问集合
Access to collection from client folder
您好,我刚开始使用流星,所以我遇到了一个问题:我无法从客户端文件夹访问集合
我的项目结构是默认的:meteor create testApp
/testApp
--.Meteor/
--testApp.html
--testApp.css
--testApp.js
然后我创建了一个 mongo 集合,我将它添加到 testApp.js
city = new Mongo.Collection('data');
运行 使用 meteor
命令的应用程序,然后我访问 chrome 控制台
city.find().fetch()
;它运行完美,它 return 城市
但是当我将 testApp.js、testApp.css、testApp.html 移动到名为 /client
的新文件夹时
/testApp
--.Meteor/
--client/
----testApp.html
----testApp.css
----testApp.js
我无法从 chrome 控制台获取集合这意味着 city.find().fetch();
return []
有什么想法吗?
这是正常现象。 client
和 server
被 meteor 视为特殊文件夹,分别只有客户端或服务器将执行它们包含的代码。它相当于一个隐含的 if (Meteor.isServer)
当您在 client
文件夹 中声明一个 collection 时 ,它只会在您的 [=38] 中创建一个空的 collection =] 数据库,MiniMongo。因此,您的 MiniMongo collection 对任何 server-side、"real" mongodb collection 都没有 link。这就是为什么您无法访问保存到实际 mongodb 数据库中的数据的原因。
所以为了解决这个问题,您可以做的是:
- 在
client
和 server
文件夹之外的单独的 js 文件中声明您的 collection 一次,以便双方都知道 collection (在大多数情况下推荐)。为此,我在我的应用程序的根目录下使用了一个 collections
文件夹
- 声明您的 collection 两次:一次像您一样在您的
client
文件夹中,另一次在您应用根目录的 server
文件夹中(在特定情况下很有用,例如上限 collections 等)
您好,我刚开始使用流星,所以我遇到了一个问题:我无法从客户端文件夹访问集合
我的项目结构是默认的:meteor create testApp
/testApp
--.Meteor/
--testApp.html
--testApp.css
--testApp.js
然后我创建了一个 mongo 集合,我将它添加到 testApp.js
city = new Mongo.Collection('data');
运行 使用 meteor
命令的应用程序,然后我访问 chrome 控制台
city.find().fetch()
;它运行完美,它 return 城市
但是当我将 testApp.js、testApp.css、testApp.html 移动到名为 /client
/testApp
--.Meteor/
--client/
----testApp.html
----testApp.css
----testApp.js
我无法从 chrome 控制台获取集合这意味着 city.find().fetch();
return []
有什么想法吗?
这是正常现象。 client
和 server
被 meteor 视为特殊文件夹,分别只有客户端或服务器将执行它们包含的代码。它相当于一个隐含的 if (Meteor.isServer)
当您在 client
文件夹 中声明一个 collection 时 ,它只会在您的 [=38] 中创建一个空的 collection =] 数据库,MiniMongo。因此,您的 MiniMongo collection 对任何 server-side、"real" mongodb collection 都没有 link。这就是为什么您无法访问保存到实际 mongodb 数据库中的数据的原因。
所以为了解决这个问题,您可以做的是:
- 在
client
和server
文件夹之外的单独的 js 文件中声明您的 collection 一次,以便双方都知道 collection (在大多数情况下推荐)。为此,我在我的应用程序的根目录下使用了一个collections
文件夹 - 声明您的 collection 两次:一次像您一样在您的
client
文件夹中,另一次在您应用根目录的server
文件夹中(在特定情况下很有用,例如上限 collections 等)