Sono nuovo di meteorite e mongo db. Sto facendo un'applicazione usando [email protected] Sto facendo un file chiamato '/imports/api/collections/recipe.js'. Qui sto creando una raccolta e importando questo file in entrambi i file "/server/main.js" e "/client/main.js". Solo in recipe.js sto pubblicando la raccolta di ricette e poi nel file del mio cliente ci sto sottoscrivendo. Fino a questo punto tutto è corretto. Quindi creo un modulo utilizzando l'autoform, che funziona bene e viene creato. Ma questo modulo non viene mai pubblicato.La raccolta Meteor non viene creata automaticamente all'avvio e la registrazione automatica non viene registrata in mongo db
Prima di tutto, il mio presupposto era che all'avvio del server, a quel punto il mio db avrebbe dovuto creare una raccolta denominata ricetta, ma non è così.
In secondo luogo, perché l'autoform non funziona? Penso che sia per la prima ragione.
Dal lato del cliente, posso vedere la mia collezione di ricette attraverso Mongol (di giocattoli di meteoriti).
La mia ricetta file- '/imports/api/collections/recipe.js': il file
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;
mio server: '' /server/main.js:
import { Meteor } from 'meteor/meteor';
import '/imports/startup/server/start.js';
import '/imports/api/collections/recipe.js';
Il mio cliente di il file 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;
}
});
Nuovo modello di ricetta:
<template name="NewRecipe">
<div class="new-recipe-container">
{{> quickForm collection=recipesCollection id="insertRecipeForm" type="insert" class="new-recipe-form" }}
</div>
</template>
Utilizzo pacchetti: Collection2 e autoform. Qualsiasi aiuto o suggerimento sarebbe apprezzato. Grazie
Sentitevi liberi di farlo funzionare biforcando il mio progetto di apprendimento meteora. Sarebbe molto buono. - https://github.com/devin6391/meteorLearn1/tree/master/recipebook
Non sto reimportando meteora/meteora. È diverso per file diversi come per es6 sistema modulel. Inoltre, non posso utilizzare RecipesCollection direttamente come variabile di un modulo, né una variabile di finestra o modello –
-Trovata. Anche se hai ragione su più importazioni di meteore/meteoriti. L'ho risolto. La raccolta RecipesCollection non può essere inserita direttamente in quickform poiché non è inclusa nell'ambito della finestra. –