9

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

risposta

1

ok risolto .... Molto vergognarsi di questo come questo è di nuovo un problema di versione con un pacchetto Meteor: 'account-ui'. A volte i pacchetti non vengono aggiornati in India a causa del famoso problema CDN.

Tuttavia, la raccolta non viene creata da sola. Dovevo andare alla console mongoDB e crearla da solo. Quindi solo l'autoformio pubblicato su di esso

0

Perché reimportate meteore/meteora in /server/main.js?

Per fare che io uso l'esportazione in questo modo:

export const RecipesCollection = new Mongo.Collection('recipes'); 

e quindi utilizzare il nome della collezione:

{{> quickForm collection="RecipesCollection" id="insertRecipeForm" type="insert" class="new-recipe-form" }} 
+0

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 –

+0

-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. –