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

使用apollo和express的全局变量

使用Apollo和Express的全局变量是指在使用Apollo和Express框架进行开发时,可以定义一些全局变量,使其在整个应用程序中可访问和共享。

在Apollo中,可以使用apollo-server库来创建GraphQL服务器。通过定义context参数,可以将全局变量传递给GraphQL解析器函数。例如:

代码语言:txt
复制
const { ApolloServer, gql } = require('apollo-server');
const express = require('express');

const app = express();

// 定义GraphQL类型和解析器
const typeDefs = gql`
  type Query {
    hello: String
  }
`;

const resolvers = {
  Query: {
    hello: (_, __, context) => {
      // 在解析器中访问全局变量
      const globalVariable = context.globalVariable;
      return `Hello, ${globalVariable}!`;
    },
  },
};

// 创建Apollo服务器
const server = new ApolloServer({
  typeDefs,
  resolvers,
  context: ({ req }) => {
    // 在上下文中传递全局变量
    return {
      globalVariable: 'World',
    };
  },
});

// 将Apollo服务器应用于Express应用程序
server.applyMiddleware({ app });

// 启动Express服务器
app.listen({ port: 3000 }, () =>
  console.log(`Server ready at http://localhost:3000${server.graphqlPath}`)
);

在上述示例中,我们定义了一个全局变量globalVariable,并将其传递给GraphQL解析器函数。在解析器函数中,我们可以访问和使用这个全局变量。

这种使用方式可以方便地在整个应用程序中共享数据,例如用户身份验证信息、数据库连接等。

对于Express框架,可以使用app.set()方法来设置全局变量。例如:

代码语言:txt
复制
const express = require('express');
const app = express();

// 设置全局变量
app.set('globalVariable', 'Hello, World!');

// 在路由处理程序中访问全局变量
app.get('/', (req, res) => {
  const globalVariable = req.app.get('globalVariable');
  res.send(globalVariable);
});

app.listen(3000, () => {
  console.log('Server started on port 3000');
});

在上述示例中,我们使用app.set()方法设置了一个名为globalVariable的全局变量,并在路由处理程序中使用req.app.get()方法访问该全局变量。

这种方式可以方便地在整个Express应用程序中共享数据,例如配置信息、环境变量等。

总结: 使用Apollo和Express的全局变量可以通过在上下文中传递或使用app.set()方法来实现。这样可以方便地在整个应用程序中共享数据。

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

相关·内容

领券