gpt4 book ai didi

mongodb - Meteor 集合不会在启动时自动创建,并且自动表单不会发布到 mongo db

转载 作者:行者123 更新时间:2023-12-02 03:11:08 25 4
gpt4 key购买 nike

我是 meteor 和 mongo db 的新手。我正在使用meteor@1.3.4.1 制作一个应用程序。我正在制作一个名为“/imports/api/collections/recipe.js”的文件。在这里,我创建一个集合并将该文件导入到“/server/main.js”和“/client/main.js”中。仅在 Recipe.js 中,我发布了 Recipe 集合,然后在我的客户文件中订阅了它。到目前为止,一切都是正确的。然后我使用自动表单创建了一个表单,该表单运行良好并已创建。但这个表格永远不会被张贴。

首先,我的假设是,当服务器启动时,我的数据库应该创建一个名为recipe的集合,但事实并非如此。

其次,为什么 autoform 不起作用?我认为这是因为第一个原因。

在客户端,我可以通过 Mongol( meteor 玩具)查看我的食谱收藏。

我的食谱文件 - '/imports/api/collections/recipe.js':

import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';
import { SimpleSchema } from 'meteor/aldeed:simple-schema';

var RecipesCollection = new Mongo.Collection('recipes');

RecipesCollection.allow({
insert(userId, doc){
return !!userId;
}
})

var RecipeSchema = new SimpleSchema({
name: {
type: String,
label: "Name"
},
desc: {
type: String,
label: "Description"
},
author: {
type: String,
label: "Author",
autoValue(){
return this.userId
},
autoform:{
type: "hidden"
}
},
createdAt: {
type: Date,
label: "Created At",
autoValue(){
return new Date();
},
autoform:{
type: "hidden"
}
}
});

RecipesCollection.attachSchema( RecipeSchema );

if (Meteor.isServer) {
// This code only runs on the server
Meteor.publish('recipes', function tasksPublication() {
return RecipesCollection.find({author: this.userId});
});
}

export const Recipes = RecipesCollection;

我的服务器文件:'/server/main.js':

import { Meteor } from 'meteor/meteor';
import '/imports/startup/server/start.js';
import '/imports/api/collections/recipe.js';

我客户的js文件:

import { Template } from 'meteor/templating';
import { Recipes } from '/imports/api/collections/recipe.js';

import '/imports/ui/pages/NewRecipe.html';
Template.NewRecipe.onCreated(function bodyOnCreated() {
Meteor.subscribe('recipes');
})
Template.NewRecipe.helpers({
recipesCollection() {
return Recipes;
}
});

新食谱模板:

<template name="NewRecipe">
<div class="new-recipe-container">
{{> quickForm collection=recipesCollection id="insertRecipeForm" type="insert" class="new-recipe-form" }}
</div>
</template>

我正在使用包:Collection2 和 autoform。任何帮助或建议将不胜感激。谢谢

请随意通过 fork 我的 meteor 学习项目来使其工作。那就太棒了。 -https://github.com/devin6391/meteorLearn1/tree/master/recipebook

最佳答案

好的解决了....对此感到非常羞愧,因为这又是一个 meteor 包的版本问题 - 'accounts-ui'。有时,由于著名的 CDN 问题,软件包在印度无法升级。

尽管如此,集合并不是自己创建的。我必须去 mongoDB 控制台并自己创建它。然后只将自动表单发布到它

关于mongodb - Meteor 集合不会在启动时自动创建,并且自动表单不会发布到 mongo db,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38083925/

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