CRUD Blueprint überschreibt in sails.js

Nach diesem geschlossenen Thema in Segeln: https://github.com/balderdashy/sails/issues/835

CRUD Blueprint überschreibt “absolut, das kommt in v0.10”

Ich möchte die Blaupausen in meinem sailsjs Dienst modifizieren, um named roots zu erlauben (konsumierend in ember). Zur Zeit muss ich jeden Controller, den ich erstelle, mit Aktionen anpassen, die größtenteils Duplikate dessen sind, was bereits in den Blaupausen enthalten ist.

Ich vermute, dass ich diesen Code jetzt aus meinen Controllern heraus und in einen Blueprints-Override-Bereich verschieben kann, aber ich weiß nicht genau, wo ich diesen Code ablegen soll.

Jedes Beispiel oder auch nur ein pointers auf den relevanten Code in den Segeln .10 Repo würde sehr geschätzt werden.

Um Blueprints in Sails v0.10 zu überschreiben, erstellen Sie einen api/blueprints Ordner und fügen Ihre Blueprint-Dateien (z. B. find.js , create.js usw.) hinzu. Sie können einen Blick auf den Code für die Standard-Aktionen in den Sails Blaupausen Haken für einen Vorsprung casting.

Das Hinzufügen von benutzerdefinierten Blaupausen wird ebenfalls unterstützt, sie werden jedoch derzeit nicht automatisch an Routen gebunden. Wenn Sie eine Datei /blueprints/foo.js erstellen, können Sie eine Route an sie in Ihrer Datei /config/routes.js mit (zum Beispiel) binden:

 'GET /myRoute': {blueprint: 'foo'} 

Sie können Aktionen mit diesen Namen in Ihrem Controller hinzufügen, um das Standardverhalten zu überschreiben

um das Verhalten zu ändern

 module.exports = { destroy: function(req,res){ Goal.update({ id: req.param('id') }, { deleted: true }) .exec(function (err, goal) { if (err) return res.json(err, 400); return res.json(goal[0]); }); } } 

Es ist möglich, die Build-Blaupausen zu verwenden, jedoch mit den zuerst ausgeführten Richtlinien . Diese Richtlinien überprüfen möglicherweise, ob der Benutzer angemeldet ist, über den richtigen Zugriff oder Ähnliches verfügt. Wirklich praktisch!

Für jedes Modell stehen callbacke sowohl vor als auch nach dem Speichern von Daten zur Verfügung. Dig in: http://sailsjs.com/documentation/concepts/models-and-orm/lifecycle-callbacks

Für Blueprints ist kein Standard-Callback verfügbar. Aber gib nicht auf. Es ist immer noch möglich, die Build-Blaupausen zu verwenden und nur die Ausgabe zu ändern. Es ist vielleicht nicht die eleganteste Lösung, aber es funktioniert gut. Schauen Sie sich meinen “Hack” an: Sails blueprints lifecycle