如何全局设置服务器名称或主机名并在任何文件中使用它?
How to set a server name or host name globally and use it in any file?
我正在使用节点 js 在 graphql 中工作。我想获取服务器的主机名并在文件的任何位置使用它。
这是我的代码:
app.use('/api',graphqlHTTP((req,res)=>({
context:{
oauth_token:req.oauth_token,
host : req.headers['host'],
ip: req.ip
},
schema,
graphiql: true,
})));
我正在通过解析器在模式文件中访问它。喜欢:
resolve: (parent, args, context, resolveInfo) => {
host = context.host;
}
在这里我可以获取主机名。但是我怎么能在任何文件中使用它呢?
尽管这不是最佳做法,但您可以像这样使用 global
对象:
global.host = host;
然后在任何需要的地方使用global.host
。
官方文档global object
您可以使用 global 对象,它是 Node.js 中的关键字。
global.hostname = req.headers['host']
并在应用中的任何地方使用它。
如果主机名是静态值并且是您可以控制的,我建议使用节点环境变量。有两种常见的使用方法:
1.命令行
2..env 文件
1) 只需指出变量的名称后跟等号,然后是值本身。之后启动你的节点服务器
HOST=localhost node server.js
然后您可以像这样在您的应用中使用它:
// server.js
const host = process.env.HOST;
2) 在应用程序的根目录中创建一个 .env 文件并在那里设置变量:
HOST=localhost
PORT=8080
API_KEY=123123
我个人更喜欢第二个,因为您只需设置一次,无需在每次启动服务器时都在控制台中输入。只是不要忘记将其包含在您的 .gitignore
中,因为您的历史记录将引用您的秘密
我正在使用节点 js 在 graphql 中工作。我想获取服务器的主机名并在文件的任何位置使用它。
这是我的代码:
app.use('/api',graphqlHTTP((req,res)=>({
context:{
oauth_token:req.oauth_token,
host : req.headers['host'],
ip: req.ip
},
schema,
graphiql: true,
})));
我正在通过解析器在模式文件中访问它。喜欢:
resolve: (parent, args, context, resolveInfo) => {
host = context.host;
}
在这里我可以获取主机名。但是我怎么能在任何文件中使用它呢?
尽管这不是最佳做法,但您可以像这样使用 global
对象:
global.host = host;
然后在任何需要的地方使用global.host
。
官方文档global object
您可以使用 global 对象,它是 Node.js 中的关键字。
global.hostname = req.headers['host']
并在应用中的任何地方使用它。
如果主机名是静态值并且是您可以控制的,我建议使用节点环境变量。有两种常见的使用方法: 1.命令行 2..env 文件
1) 只需指出变量的名称后跟等号,然后是值本身。之后启动你的节点服务器
HOST=localhost node server.js
然后您可以像这样在您的应用中使用它:
// server.js
const host = process.env.HOST;
2) 在应用程序的根目录中创建一个 .env 文件并在那里设置变量:
HOST=localhost
PORT=8080
API_KEY=123123
我个人更喜欢第二个,因为您只需设置一次,无需在每次启动服务器时都在控制台中输入。只是不要忘记将其包含在您的 .gitignore
中,因为您的历史记录将引用您的秘密