2016-05-21 24 views
0

In sailsjs blueprint api, Standardmäßig reagiert Aktionsroute auf alle vier Arten von Anfragen - GET, POST, PUT, DELETE. Ich würde gerne nur bestimmte Arten von Anfragen auf einer Route ablehnen, während ich anderen erlauben würde, durchzugehen. Zum Beispiel möchte ich vielleicht nur POST-Anfragen an die Balkenaktion bei/foo/bar akzeptieren, während GET-, PUT- und DELETE-Anfragen an diese Route abgelehnt werden.Wie kann man den HTTP-Anfragetyp in sails.js einschränken?

Richtlinien können zwar verwendet werden, um Controlleraktionen zu beschränken.

FooController: { bar: false, },

Aber Hier bestreitet er alle vier Arten von Anfragen oder alle vier Arten von Anfragen auf der Basis der gleichen Bedingung erlauben. Was ich stattdessen will, ist, immer 3 der 4 Arten von Anfrage zu verweigern, während immer der 4. Typ durchgeht.

Können Sie dies tun, ohne Blueprint zu deaktivieren und die Routen manuell in /config/routes.js einzugeben? Wenn das so ist, wie?

Antwort

0

Dies ist einer für Ihre routes-Datei (/config/routes.js) und nicht Ihre Richtliniendatei, wie Sie sie identifiziert haben.

'POST /page/link': YourControllerName.ActionName, 
'GET /': YourHomePageController.ActionName, 
'PUT /login': UserController.login 

Die ersten beiden sind Beispiele, die die Syntax zeigen. Das letzte Beispiel zeigt, wie dies in einem typischen Setup aussehen würde, das ein Anmeldeformular für ein Login steuert. Wenn Sie Mehrfache durch z.B. POST und PUT fügen Sie dann einfach eine weitere Zeile mit derselben controller.action ein, aber ändern Sie die Methode.

Für weitere Beispiele und auch andere Syntax, die verwendet werden können, werfen Sie einen Blick hier:

http://sailsjs.org/documentation/concepts/routes

Sobald Sie die Routen haben Sie wollen, werden Sie dann den Bauplan Methoden ausschalten müssen, die, wenn sie Sie verlassen diese Routen und lassen den Zugang weiterhin zu.

Gehen Sie zu Ihrer config/blueprint.js Datei und ändern Sie die folgenden Elemente:

actions: false 
rest: false 
shortcuts: false 

erneut weitere Informationen darüber, was diese tun und wie sie verwendet werden können, finden Sie hier:

http://sailsjs.org/documentation/reference/configuration/sails-config-blueprints