使用 ExpressJS 访问 Apollo Server 中的 Request 对象

Posted

技术标签:

【中文标题】使用 ExpressJS 访问 Apollo Server 中的 Request 对象【英文标题】:Accessing Request object in Apollo Server with ExpressJS 【发布时间】:2019-10-15 23:10:13 【问题描述】:

有什么方法可以从 Apollo Server 中的底层 express 应用访问请求对象

【问题讨论】:

【参考方案1】:

上下文配置参数可以是对象、返回对象的函数或返回返回对象的promise的函数。该函数将 HTTP 请求作为参数获取,可以这样定义:

const apolloServer = new ApolloServer(
  schema,
  context: async ( req ) => 
    const something = getSomething(req)
    return  something 
  ,
)

apolloServer.applyMiddleware( app, path: '/graphql' )

const  appPort  = serviceFunc.getAccessData()
app.listen( port: appPort , () => 
  console.log(`Express+Apollo Server on http://localhost:$appPort/graphql`)
)

感谢Eugene eugene1g

【讨论】:

以上是关于使用 ExpressJS 访问 Apollo Server 中的 Request 对象的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs,expressjs - 如何提供延迟响应

在 ExpressJS 响应中返回异步等待 try/catch 抛出错误 [重复]

ExpressJS中的VHost访问主网站页面

ExpressJS Post 方法 - 无访问控制允许来源

Apollo GraphQl renderToStringWithData 在服务器运行后总是相同的数据

访问 ExpressJS/ConnectJS 中间件中的“app”变量?