[英]Express route handler based with custom parameters
我想基於一些req.headers數據輸出HTML或JSON。 例如:如果req.headers.contentType ==“ application / json”,我將返回JSON,否則返回HTML。
var route = {
html: function(req, res, next) {},
json: function(req, res, next) {}
}
app.get('/test', route);
這顯然行不通。 所以我認為我需要一個中介功能:
app.get('/test', _findRoute);
function _findRoute(req, res, next) {
if(req.headers["content-type"] === "application/json") {
return route.json;
} else {
return route.html;
}
}
這顯然也行不通,因為此時我實際上無法訪問route對象。
我可以:
app.get('/text', _findRoute(route));
但是然后我無權訪問req對象。
我實際上不知道如何進行,所以任何想法都非常受歡迎:)
如果僅稍微重寫_findRoute,則最后一個版本( app.get('/text', _findRoute(route));
)將起作用。
function _findRoute (route) {
return function (req, res, next) {
if(req.headers["content-type"] === "application/json") {
route.json(req, res, next);
}
else {
route.html(req, res, next);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.