Express 回调需要比 (req, res) 更多的参数

Express callback needs more parameters than (req, res)

对于我正在开发的 Express 应用,my callbacks can only have (req, res, next, err) passed into them

这就是我的工作。

function listEvents(auth, req, res, email, authURL = ""){
...
var calendar = google.calendar('v3');
calendar.events.list({
auth: auth, ... });
}

但我的函数定义必须如下所示:

function listEvents(req, res){...}

我可以从 API 调用中检索电子邮件和 authURL,但我不知道如何传递在 listEvents 回调方法中创建的 auth。我正在尝试这样的事情:

oauth2Client.credentials = acctoken;
    var output = {
      auth: oauth2Client,
      data: callback(req, res)
    };
    res.send(output);

但我需要将 oauth2Client 放入 回调本身。这只会让您在对回调链的响应中发送两者。

如有任何帮助,我将不胜感激。非常感谢。

oauth2Client.credentials = acctoken;
var output = {
  auth: oauth2Client,
  data: callback(req, res)
};
res.send(output);

参考上面的代码块,您将 auth 指定为 oauth2Client。 您可以在请求对象中附加 oauth2Client 并在回调函数中使用它。

所以我和很多人谈过,显然我的问题是我没有正确考虑请求对象。正如上面的回答所述,可以将字段附加到请求的正文中。到目前为止,我只在邮递员中准备过请求——所以这对我来说非常有用。这几乎正​​是我要找的;我需要一种方法来向回调提供信息而不将其作为参数传递。