2016-04-25 13 views
0

Ich möchte Standard nächste in Restify irgendwie überschreiben. Z.B. jetzt habe ich Code wieRestify: "override" default next

server.post('/names', function (req, res, next) { 
    names = req.params.names; 
    if (!Array.isArray(names)) { 
    return next(new restify.errors.BadRequestError('names field is wrong or missing')); 
    } 
    res.send({ code: "OK" }); 
    return next(); 
}); 

ich es nur

server.post('/names', function (req, res, next) { 
    names = req.params.names; 
    if (!Array.isArray(names)) { 
    return next(new restify.errors.BadRequestError('names field is wrong or missing')); 
    } 
    // Add names to DB 
    return next(); 
}); 

Wo next (für Nicht-Fehler auf) ist wie

function next(res) { 
    if (!body.hasOwnProperty("code")) { 
    body["code"] = "OK"; 
    } 
    res.send(body); 
} 

Was ist der beste Weg sein wollen implementieren Dies?

+0

Ihrem Code fehlen 'var' Schlüsselwörter für jede Variablendeklaration. Das ist schlecht, denn ohne 'var' wird alles global. Überprüfen Sie Ihren Code, jede Variablendeklaration ohne 'var' ist ein Fehler, der auf Sie wartet. Tools wie [jshint] (http://jshint.com/) helfen, diese Fehler zu finden. – Tomalak

+0

Abgesehen davon ist Ihre Frage unklar. Erklären Sie nicht, wie der Code aussehen soll, erklären Sie, was Sie erreichen möchten. – Tomalak

+0

Es ist nur Skizze. Die Idee ist, das Ergebnisobjekt nur als letztes zu senden, anstatt res.send + next zu machen. – Ximik

Antwort

0

Ich denke, dass Sie nach einem Handler suchen, der ausgeführt wird, nachdem alle anderen Handler in der Kette fertig sind. Betrachten Sie den Ereignishandler "nach". In der Dokumentation zeigen sie an example for audit logging.

Sie können dasselbe verwenden, um den Antworttext nach Bedarf zu aktualisieren. Der Code könnte etwa so aussehen ...

server.on('after', function (request, response, route, error) {}); 

Denken Sie daran, dies erfordert immer noch Sie return next(); von allen anderen Handler in der Kette.

+0

Schöne Option. Vielen Dank! – Ximik