小编zag*_*gen的帖子

在 graphqlHTTP.Middleware 之后挂载中间件

我有一个关于express-graphql.\nI\xe2\x80\x99m 的问题,试图在 GraphQL 解析器之后运行中间件。

\n\n

这是我的前两次尝试:

\n\n
app.use('/api', graphqlHTTP({\n    schema: graphqlSchema\n  })\n);\n\napp.use((req, res, next) => {\n  console.log('middleware called');\n  next();\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n
app.use('/api', graphqlHTTP({\n    schema: graphqlSchema,\n    graphiql: true,\n  }), () => {\n      console.log('middleware called');\n  }\n);\n
Run Code Online (Sandbox Code Playgroud)\n\n

两者都\xe2\x80\x99t 工作。\n我猜express-graphql不是next()在某个地方打电话。

\n\n

消息来源似乎证实了这一点:

\n\n
type Middleware = (request: Request, response: Response) => void;\n
Run Code Online (Sandbox Code Playgroud)\n\n

next不是参数。

\n\n

我尝试了这个解决方法:

\n\n
app.use( (req, res, next) => {\n  req.on('end', () => {\n    console.log('middleware called');\n  });\n  next();\n});\n\napp.use('/api', graphqlHTTP({\n    schema: graphqlSchema\n  })\n);\n …
Run Code Online (Sandbox Code Playgroud)

middleware express graphql graphql-js express-graphql

5
推荐指数
0
解决办法
438
查看次数