expressgraphql-如何在上下文中将res对象传递给自定义函数?

expressgraphql-如何在上下文中将res对象传递给自定义函数?,express,express-graphql,Express,Express Graphql,在我的配置中,我有以下内容:- expressGraphQL((req, res) => ({ ..., context: { req, res, database, }, })) 我希望能够在上下文中将res传递给自定义函数,如下所示:- expressGraphQL((req, res) => ({ ..., context: { req, res, database, myCustomFunction: (res) => { // do something with r

在我的配置中,我有以下内容:-

expressGraphQL((req, res) => ({
...,
context: {
req,
res,
database,
},
}))
我希望能够在上下文中将res传递给自定义函数,如下所示:-

expressGraphQL((req, res) => ({
...,
context: {
req,
res,
database,
myCustomFunction: (res) => {
// do something with res object here
}
}))
但是,当我从冲突解决程序中的上下文获取myCustomFunction并运行时,res是未定义的

我知道我可以将res与myCustomFunction一起从上下文中拉出并调用myCustomFunction(res),但我只希望能够执行myCustomFunction()


我有什么办法可以做到这一点吗?谢谢。

既然您是在一个已被传递的函数中定义函数作为参数,只需使用该参数即可。这意味着您应该从
myCustomFunction
的签名中删除
res
参数,否则您将得到实际要使用的
res
变量

expressGraphQL((req, res) => ({
  ...,
  context: {
    ...
    myCustomFunction: () => {
      console.log(res)
    },
  },
}))
您也可以在不同的范围内定义
myCustomFunction
,在这种情况下,您可以执行以下操作:

function myCustomFunction (res) {
  console.log(res)
}

expressGraphQL((req, res) => ({
  ...,
  context: {
    ...
    myCustomFunction: () => myCustomFunction(res),
  },
}))