首页 > 解决方案 > 使用 apollo 和 express 的全局变量

问题描述

index.js

import { ApolloServer } from 'apollo-server-express'
import express from 'express'

global.myTest = true

/models/user.js

import Sequelize from 'sequelize'
console.log('test:' + global.myTest)

任何人都知道如何使用 Apollo Server Express 设置全局变量?上面的示例返回未定义。

标签: node.jsapollo-server

解决方案


由于 es6import模块被吊起。在运行任何代码之前,将加载所有依赖模块。您需要确保global.myTest在定义和分配之后访问。您可以使用 nodejsrequire关键字在将值分配给global.myTest.

例如

index.js

import { ApolloServer } from 'apollo-server-express';
import express from 'express';

global.myTest = true;

require('./models/user');

./models/user.js

console.log('test:' + global.myTest);

控制台的输出:

$ npx ts-node ./index.js
test:true

推荐阅读