gpt4 book ai didi

mongodb - 从客户端文件夹访问集合

转载 作者:可可西里 更新时间:2023-11-01 10:03:35 25 4
gpt4 key购买 nike

您好,我刚开始使用 meteor ,所以我遇到了一个问题:我无法从客户端文件夹访问集合我的项目结构是默认的:meteor create testApp

/testApp
--.Meteor/
--testApp.html
--testApp.css
--testApp.js

然后我创建一个 mongo 集合并将其添加到 testApp.js

city = new Mongo.Collection('data');

使用 meteor 命令运行应用程序,然后我访问 chrome 控制台city.find().fetch();它运行完美,返回城市

但是当我将 testApp.js 、 testApp.css 、 testApp.html 移动到名为 /client 的新文件夹时

/testApp
--.Meteor/
--client/
----testApp.html
----testApp.css
----testApp.js

我无法从 chrome 控制台获取集合,这意味着 city.find().fetch(); 返回 []

有什么想法吗?

最佳答案

这是正常行为。 clientserver 被 meteor 视为特殊文件夹,分别只有客户端或服务器会执行它们包含的代码。它等效于隐式 if (Meteor.isServer)

当您在 client 文件夹中声明一个集合时,,它只会在您的客户端数据库 MiniMongo 中创建一个空集合。因此,您的 MiniMongo 集合没有链接到任何服务器端的“真实”mongodb 集合。这就是为什么您无法访问保存到实际 mongodb 数据库中的数据的原因。

所以为了解决这个问题,你可以做的是:

  • clientserver 文件夹之外的单独 js 文件中声明您的集合一次,以便双方都知道该集合(大多数情况下推荐个案)。为此,我在我的应用程序的根目录下使用了一个 collections 文件夹
  • 两次声明您的集合:一次像您一样在您的 client 文件夹中,另一次在您应用程序根目录的 server 文件夹中(在特定情况,例如上限集合等)

关于mongodb - 从客户端文件夹访问集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31359977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com