跨函数使用 req & res(英语:req)



我发现每次处理承诺时都要做function ***(req, res){ ... }很令人沮丧。所以我有一个想法,使顶部,参考对象代替,ReqRes

let Req;
let Res; 
// i can also do "const { username } = Req.body" to make "username" avaliable to all functions
function promise() {  return Promise.resolve(); }
function promise2() {  Res.send('test');  }
module.exports = (req, res, next) =>  { 
Req = req
Res = res
return promise().then(() => promise2()); 
}

你对此有什么看法,赞成还是反对?如果这是反模式,请让我知道并建议一个首选的方式。

谢谢

不需要用request和res来解析每个promise(需要在单个对象中,因为你只能解析一个东西)。

你可以使用use这个模式。

function promise1(req, res) {
  req.whatever = '';           // will be available in future promises
  return Promise.resolve(foo); // you don't need to resolve req and res 
}
function promise2(req, res) {
  return function (foo) {
    // whatever promise1 resolved to, will be here :)
    res.send('test');
  }
}
module.exports = (req, res, next) =>  {
  return promise1(req, res)
    .then(promise2(req, res));
}

在这种情况下,你没有提升你的Req和Res变量在你的模块的全局作用域(你真的不需要它是全局的,在这种情况下)

最新更新