Ich möchte eine Middleware für die Validierung von Anforderungen basierend auf einer Raml-Datei verwenden.
Was mein Code wie folgt aussieht:Expressjs - Verwenden Sie Middleware in Middleware
// require
let resources = require('osprey-resources');
let errorHandler = require('request-error-handler');
let handler = require('osprey-method-handler');
// create express instance
let app = express();
// ramlObj obtained by raml2obj.parse(myPath).then()
let router = resources(ramlObj.resources,
function (method, path) {
// get the method type : get/post/etc
let methodType = method.method.toUpperCase();
// provide a function (controller) for this path
return controllers.provideController(methodType, path);
}
);
// osprey-router middelware , created by osprey-resources
app.use('/v1', router);
// error Handler middelware
app.use(errorHandler(responder, DEFAULT_LANGUAGE, customMessages));
// What I want:
// routes middelware
app.use('/v1', custom_middleware(method, methodType, path), router);
wo custom_middleware
Verwendung osprey-method-handler
innen mit allen Parametern ich ihm zur Verfügung gestellt. Ich habe versucht, ohne Erfolg verbinden
Vielen Dank für Ihre Antwort. Ich weiß, dass lodash ideal für funktionale Programmierung ist, also werde ich es versuchen. – jy95
Nur eine Frage, verwenden Osprey-Methode-Handler in seinem Code next() aufrufen .... Also, was passiert, wenn custom_middleware muss nicht als nächstes() (aber verlassen auf Osprey-Methoden-Handler)? – jy95
gerade getestet ..., die nächste Middleware (Router) kann nicht funktionieren, wenn ich das Ergebnis von osprey-method-handler result nicht erhalte ... – jy95