2012-04-10 5 views
0

Ich kodiere eine kleine API in node.js (Express) für meine spine.js-Anwendung. Das Erstellen und Erstellen neuer Objekte in der Datenbank funktioniert sehr gut. Aber beim Löschen/Bearbeiten habe ich gerade ein Problem. Jedes Objekt erhält eine individuelle ID, die von der JS-App erstellt wird. In der Datenbank hat jeder Eintrag auch einen eindeutigen Schlüssel.PUT, DELETE mit JS-Anwendung (spine.js)

Wenn ich object.destroy() aufrufen, kann ich die Ajax-Anfrage sehen, die an meinen Server gesendet wird. Aber als Parameter für die ID habe ich immer die ID, die von der App angegeben wurde. Aber zum Löschen/Aktualisieren von Sachen in der Datenbank brauche ich den Schlüssel, der in der Datenbank gespeichert ist (in meinem Fall mongoDB) Also wie kann ich die richtige ID an den Server senden oder den richtigen Eintrag auf der Serverseite identifizieren?

Antwort

1

Warum senden Sie nicht die richtige ID zurück, wenn Sie Ihr Modell wie im Spine documentation gezeigt erstellen.

Nach einer neuen Seite Datensatz erstellt wurde, sendet Spine eine POST-Anforderung zu/Seiten mit folgendem Inhalt:

POST /pages HTTP/1.1 Host: spine-rails3.herokuapp.com Accept: 
    application/json, text/javascript, */*; q=0.01 Content-Type: 
    application/json; charset=UTF-8 X-Requested-With: XMLHttpRequest 
    Content-Length: 65 

    {"name":"Dummy page","id":"EEAF4B17-5F1D-4C06-B535-D9B58D84142F"} 

Dann wird der Server mit so etwas wie diese reagieren sollte

:

HTTP/1.1 201 Created Content-Type: application/json; charset=utf-8 
Location: http://spine-rails3.herokuapp.com/pages/196 Content-Length: 
28 Connection: keep-alive 

{"name":"Dummy page","id":1} 
+0

Ich hatte einen kleinen Fehler in meinem vorherigen Code .. das ist was ich noch hatte die "alte" ID. Es funktioniert jetzt trotzdem danke :) – soupdiver

Verwandte Themen