2013-08-29 9 views
24
gefunden

Ich erhalte die insert failed: Method not found Protokollmeldung und es ist wahrscheinlich das Ergebnis von dem, was in diesen Themen beschrieben:Meteor: Insert fehlgeschlagen: Methode nicht

jedoch Ich sehe nicht wie. Lassen Sie mich den Code in den Hoffnungen zeigen, die klarer erklären werden. Ich verwende Coffee:

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") 

Ich bin total ein n00b mit Meteor, aber was ich aus den oben zitierten Fäden zu entnehmen ist, dass die Sammlung auf dem Client und dem Server zur Verfügung stehen müssen. Ist das nicht das, was ich getan habe, oder entwickle ich Kaffee-Blindheit?

Danke!

+0

Duplizieren von [Meteor eine lokale Verbindung führt zu Fehler mit: Insert fehlgeschlagen: 404 - Methode nicht gefunden] (http://stackoverflow.com/questions/10483142/meteo-using-a-local-connection-results-in-error-insert-failed-404-method-n) –

+1

Ein guter erster Schritt als n00b ist zu entfernen jeder Code, der für die Reproduktion des Fehlers nicht relevant ist. Z.B. Das Ersetzen der VIN hat wahrscheinlich nichts mit dem Fehler zu tun, also versuche es zu entfernen. Tritt der Fehler immer noch auf? Entfernen Sie den Code, bis Sie den Mindestwiedergabefall isoliert haben. –

Antwort

40

Vergewissern Sie sich, dass Sie Ihre Sammlung sowohl auf dem Server als auch auf dem Client deklariert haben.

In Ihrem Code über @VINs = new Meteor.Collection("vins") sowohl im Client und Server so was könnte es sein, dass Sie Ihren Code in das Verzeichnis /client haben?

Wenn dies der Fall ist, wird der Code nur auf dem Client ausgeführt, obwohl Sie den else für den if Meteor.isClient Block haben.

Um dies zu beheben, kopieren Sie die Zeile, die Sie im /server Verzeichnis in eine .coffee Datei verwendet:

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

Und ... Sie haben es beim ersten Versuch geschafft :) Es war eine Kombination aus meinem Unverständnis und einigen Verzeichnisreorganisationen. –

+1

Ich war nicht sicher! Wenn es Ihr Problem gelöst hat, brauchen Sie auch nicht das 'if Meteor.isClient..else..', weil es auf dem Client und dem Server abhängig von den Verzeichnissen, in denen sich die Dateien befinden, bereits ausgeführt wird. Wenn Sie Ihre Dateien in den Stammordner stellen Verzeichnis, dann könnten Sie den 'if Meteor.isClient' verwenden (wie im Beispiel von Todo) – Akshat

+0

Rechts. Gut, danke! Ich komme dahin. Nur nicht so schnell, wie ich es erwartet hatte. Nur mein zweites Mongo-Projekt und ich müssen meinen Kopf aus dem Beziehungsraum heraushalten. –

Verwandte Themen