2015-06-18 14 views
10

Dies könnte eine sehr einfache Frage sein, aber ich finde nichts in den Waterline-Dokumenten.So erstellen Sie eine neue Instanz des Wasserlinienmodells, ohne sie zu speichern

Wie ist es möglich, eine Instanz eines Waterline-Modells zu erhalten, ohne es sofort zu speichern?

Model.create(data); // already written to database 

Ich suche etwas wie

var user = User.new(data); // new instance, not persistent so far 
user.doSomething(withThis); // call method on instance 
user.save(); // Now write it to database 

Dank

+0

Einige von ihnen könnte das sein, was Sie suchen. http://sailsjs.org/#!/documentation/concepts/ORM/Lifecyclecallbacks.html – Fissio

+0

Ich denke nicht, dass dies in der öffentlichen Schnittstelle ausgesetzt ist, es * * * möglich sein kann, es auf private Methoden zurückgreifen ... –

+1

Ich denke, ich suche hauptsächlich danach, weil ich es von Ruby on Rails gewohnt bin. Am Ende ist es nicht wirklich notwendig, eine Instanz zu erstellen, ohne sie in die db zu schreiben. Vielleicht möchten Sie etwas mit der Benutzereingabe machen (Hash-Passwörter, validieren Sie es, erstellen Sie zusätzliche Daten, etc.), bevor Sie es schreiben, aber Validierung/Sanitation/Datenmanipulation kann mithilfe von Hooks erreicht werden. Für alle mit der gleichen Frage: https://github.com/balderdashy/waterline-docs/blob/master/models/lifecycle-callbacks.md –

Antwort

3

Sieht aus wie Sie grundlegende Javascript Instanziierung nutzen können. Sieh dir dieses Problem an, nicht sicher, ob es repariert wurde, aber du kannst den Krümeln von dort folgen.

https://github.com/balderdashy/waterline/issues/763

+1

"... Sie können die Krümel von dort folgen" - mein Leben als Programmierer. –

+0

Ja, das fasst es ziemlich zusammen. –