Ich habe gerade eine neue Kopie des Node-Frameworks Sails.js ausgepackt. Es basiert auf Express 3. In der Datei /config/routes.js ist dieser Kommentar:
%Vor%Im selben Konfigurationsordner habe ich die Datei is_ajax.js erstellt.
%Vor%Mein beabsichtigter Zweck besteht darin, Nicht-Ajax-GET-Anforderungen alle dieselbe Vorlagendatei laden zu lassen, damit meine CanJS-Anwendung den Anwendungsstatus basierend auf der URL einrichten kann (so ist meine Javascript-Anwendung ordnungsgemäß bookmark-fähig).
Ich möchte dieses Skript als Middleware ausführen. Kann mir bitte jemand zeigen, wie man in diesem Fall app.use () benutzt, damit das Skript is_ajax.js vor einem anderen Routing ausgeführt wird?
Ich vermute, es ist so etwas wie
%Vor%Nur wenn ich das obige mache, sagt es mir, dass es das Express-Modul nicht finden kann. Ich habe überprüft, dass Express ein Modul in Sails 'node_modules ist. Gibt es eine andere Syntax zum Laden? Ich würde lieber nicht eine zweite Kopie von Express neben Segel installieren. Gibt es eine Möglichkeit, auf die ursprüngliche App-Instanz von Sails / Express zuzugreifen?
Sie können dafür Richtlinien verwenden. Speichern Sie Ihre isAjax
-Funktion als isAjax.js unter Ihrem api / policies-Ordner und ändern Sie sie so, dass sie nur module.exports
anstelle von module.exports.isAjax
verwendet. Dann können Sie in Ihrer Datei config / policies.js angeben, auf welche Controller / Aktionen die Richtlinie angewendet werden soll - um isAjax
für jede Route auszuführen, tun Sie einfach Folgendes:
in dieser Datei.
Ich hatte das gleiche Problem herauszufinden, wie man Middlewares nutzt.
Sie sind grundsätzlich in config/policies.js
definiert.
Also, wenn Sie middlewares (aka Richtlinien ) wie im alten Stil verwenden möchten, können Sie Folgendes tun (dies ist möglicherweise nicht der schönste Weg):
Der eigentliche sailjs Weg besteht jedoch darin, alle diese Richtlinien in den Ordner api/policies/
Um Middleware von Express hinzuzufügen, finde ich diesen Thread und
sails-middleware-example-issue sind sehr nützlich.
npm install express
var exp = require('express')
$app_dir/config/local.js
hinzu
%Vor%