【问题标题】:Express callback needs more parameters than (req, res)Express 回调需要比 (req, res) 更多的参数
【发布时间】:2025-11-26 07:45:01
【问题描述】:

对于我正在开发的快速应用程序,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 进入回调本身。这只会让您将两者都发送到回调链的响应中。

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

【问题讨论】:

  • 如果我要尝试的方法有效,我实际上可能能够回答这个问题。

标签: javascript node.js express oauth-2.0 google-calendar-api


【解决方案1】:
oauth2Client.credentials = acctoken;
var output = {
  auth: oauth2Client,
  data: callback(req, res)
};
res.send(output);

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

【讨论】:

  • 哦!谢谢!我会研究如何做到这一点:)
【解决方案2】:

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

【讨论】: