2013-08-29 15 views
24

sto ricevendo il messaggio di log insert failed: Method not found e probabilmente è il risultato di ciò che è descritto in queste discussioni:Meteor: inserto non riuscita: il metodo non trovato

Tuttavia , Non vedo come. Lascia che mostri il codice nella speranza che spiegherà più chiaramente. Sto usando CoffeeScript:

if Meteor.isClient 
    @VINs = new Meteor.Collection("vins") 

    scoped_vins = @VINs 
    Template.vins.events = 
    "click .icon-plus-sign": -> 
     console.log "this is #{this}" 
     realVIN = $("#your-vin").val().replace /\D/g, '' 
     console.log "user id is: #{Meteor.userId()} vin is #{parseInt(realVIN)}" 
     VINs.insert number: parseInt(realVIN), owner: Meteor.userId() if Meteor.userId() 
     $("#your-vin").val('') 
else 
    @VINs = new Meteor.Collection("vins") 

Sono totalmente un n00b con Meteor, ma quello che ho spigolato dai fili sopra citati è che la raccoltadeve essere disponibile sul client e il server. Non è quello che ho fatto, o sto sviluppando la cecità al caffè?

Grazie!

+0

duplicati di [Meteor con un risultato di collegamento locali in errore: inserto non riuscita: 404 - Metodo non trovato] (http://stackoverflow.com/questions/10483142/meteor-using-a-local-connection-results-in-error-insert-failed-404-method-n) –

+1

Un buon primo passo come n00b è quello di rimuovere qualsiasi codice che non è rilevante per riprodurre l'errore. Per esempio. il 'replace' sul VIN probabilmente non ha nulla a che fare con l'errore, quindi provando a rimuoverlo. L'errore si presenta ancora? Continua a rimuovere il codice fino a quando non isolerai il caso di riproduzione minimo. –

risposta

40

Assicurati di aver anche dichiarato la tua raccolta sul server e sul client.

Nel tuo codice sopra @VINs = new Meteor.Collection("vins") sia nel client che nel server, quindi cosa potrebbe essere che hai inserito il tuo codice nella directory ?

In tal caso, ciò significa che il codice verrà eseguito solo sul client, anche se si dispone dello else per il blocco if Meteor.isClient.

per rimediare a questa, copiare la riga è stato utilizzato in un file .coffee nella /server directory:

@VINs = new Meteor.Collection("vins") 
+0

E ... l'hai inchiodato al primo tentativo :) Era una combinazione della mia mancanza di comprensione e di qualche riorganizzazione delle directory. –

+1

Non ero troppo sicuro! Se ha risolto il tuo problema, non hai bisogno di "if Meteor.isClient..else.." perché sarà già eseguito sul client e sul server a seconda delle directory in cui si trovano i file. Se metti i tuoi file nella root directory quindi potresti usare il 'se Meteor.isClient' (come l'esempio di todos) – Akshat

+0

Right. Bene grazie! Ci sto arrivando. Solo non così velocemente come avevo indovinato. Solo il mio secondo progetto di mongo e devo tenere la testa fuori dallo spazio relazionale. –

Problemi correlati