gpt4 book ai didi

javascript - Meteor 1.4,如何访问包中的用户定义集合

转载 作者:行者123 更新时间:2023-11-29 19:09:09 25 4
gpt4 key购买 nike

背景:

所以我正在为 meteor 1.4.2 创建一个带有 React 的管理包,这样我就可以学习如何做这类事情。管理包将只能更新用户定义的集合(插入、删除、修改)。

我在我的应用程序中的 imports/api/posts.js 下有这个文件:

// imports/api/posts.js
import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';

export const Posts = new Mongo.Collection('posts');

if (Meteor.isServer) {
Meteor.publish('posts', function postsPublication() {
return Posts.find();
});
}

我可以在我的应用程序中轻松访问此文件,例如使用 import { Posts } from '../imports/api/posts.js';

问题:

如何从管理包中访问相同的 Posts 集合,以便插入新项目、删除项目等?

另外,我看到了this post早些时候关于类似的事情,但这是否意味着像 yogiben:admin 这样的包也不使用模块系统?

最佳答案

理解这一点的关键是认识到一些 meteor 包是库,一些是 (Meteor) 框架的扩展,如 defined here .

yogiben:admin 是 Meteor 框架的扩展,因为它需要能够找到您编写的代码(您的集合)才能正常工作。

如何启用它取决于您。以前的集合是全局定义的,因此它们将被(自动/急切地)导入,并且通常在 /client/server 目录之外,因此它们可以在两个客户端和服务器。

现在您可以选择 - define your collections outside the /imports directory, and they will still be eagerly imported ,或在您的管理框架需要它们的地方导入它们。作为第三种方式,您可以要求将它们附加到(服务器端)global 对象,例如作为字典(即 global.myCollections = {'posts': Posts}),以及(在浏览器中)window 对象(with window.myCollections = { '帖子':帖子)。

yogiben:adminexample starter repo将所有内容保留在 /imports 之外,但是我怀疑如果您只是将集合定义保留在 /imports 之外,将其余代码移至 currently recommended project structure,这仍然可以正常工作.

关于javascript - Meteor 1.4,如何访问包中的用户定义集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40456475/

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