簡體   English   中英

將Node.JS res傳遞給函數?

[英]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 (我想),因為此時的thisexport 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM