首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在保持对请求对象的访问的同时,对express-graphql解析器进行依赖注入?

在使用express-graphql解析器时,可以通过依赖注入的方式来保持对请求对象的访问。下面是一个示例的解决方案:

  1. 首先,确保你已经安装了express和express-graphql模块。
  2. 创建一个GraphQL服务的入口文件,比如app.js,并引入所需的模块:
代码语言:javascript
复制
const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const { buildSchema } = require('graphql');
  1. 定义GraphQL的schema和resolver,这里以一个简单的例子为例:
代码语言:javascript
复制
const schema = buildSchema(`
  type Query {
    hello: String
  }
`);

const root = {
  hello: () => 'Hello World!'
};
  1. 创建一个Express应用实例,并在路由中使用express-graphql中间件:
代码语言:javascript
复制
const app = express();

app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: true
}));
  1. 在创建Express应用实例之前,定义一个中间件函数,用于将请求对象注入到resolver中:
代码语言:javascript
复制
const injectRequest = (req, res, next) => {
  root.request = req;
  next();
};

app.use(injectRequest);
  1. 最后,启动Express服务器:
代码语言:javascript
复制
app.listen(3000, () => {
  console.log('GraphQL server running on port 3000');
});

现在,你可以通过发送GraphQL请求来测试是否成功注入了请求对象。在浏览器中访问http://localhost:3000/graphql,你将看到GraphQL的调试界面(GraphiQL),并可以执行查询:

代码语言:graphql
复制
query {
  hello
}

这将返回一个字符串"Hello World!"。

这是一个基本的示例,展示了如何在保持对请求对象的访问的同时,对express-graphql解析器进行依赖注入。根据具体的业务需求,你可以根据这个思路进行扩展和定制化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券