[英]Passing Node.JS res to a function?
這不會顯示對HTTP請求的任何響應,只會掛起:
function middleware(req, res, next) {
to_end(res).NotFound();
return next();
}
這有效:
function middleware(req, res, next) {
to_end(res).NotFound();
res.send(); // <----------------------------------------------
return next();
}
我正在通過以下簡單功能使用restify:
export const to_end = res => {
return {
NotFound: (entity = 'Entity') => res.json(404, {
error: 'NotFound', error_message: `${entity} not found`
})
}
}
我不太擅長ES6,但我想可能是javascript的上下文問題(我的意思是this
變量)。
在您的情況下, res.json()
可能會拋出res is not defined
(我想),因為此時的this
是export const to_end ...
(由於=>
的魔力)的上下文,它不知道什么是res
。
對不起,我的解釋很糟糕:(。閱讀這篇文章以了解更多有關this
。
我們可以使事情變得更簡單:
module.exports = function(res) {
return {
NotFound: function() {
res.json(404, {
error: 'NotFound',
error_message: `${entity} not found`
});
}
}
};
P / S:尚未測試。 祝好運! :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.