我想将一个URL分配给firbase函数
const localUrl = localUrlBase + apiEndpoint
const onlineUrl = onlineURLBase + apiEndpoint
const urlToUse = process.env.dev? localUrl : onlineUrl
现在,当我在本地运行函数时,我期望它分配localUrl
,但它分配onlineUrl
如何从代码中知道函数是在线托管的还是在本地运行的。
答案 0 :(得分:0)
方法:
这可以通过将参数传递给节点来完成。在此示例中,我们可以将参数dev
与常规命令一起传递以运行节点应用程序。我将使用非常通用的命名约定(app.js
),但是您将不得不更改名称以适合您的实际文件路径。
运行包含功能的文件时:node app.js dev
我们传递参数dev
,并且可以在运行process.argv
的第3个位置的node.js应用程序中访问它。
在文件中:
const env = process.argv[2] === "dev"
const localUrl = localUrlBase + apiEndpoint;
const onlineUrl = onlineURLBase + apiEndpoint;
const urlToUse = env ? localUrl : onlineUrl;
然后仅检查是否已创建env变量。
答案 1 :(得分:0)
根据您的代码(如果已设置)
const process.env.dev = true;
在使用“ process.env.dev”的位置之前的任何地方,然后应使用“ localUrl”,否则将始终使用“ onlineUrl”
您可以使用以下console.log检查最终将哪些值设置为“ urlToUse”变量
const urlToUse = process.env.dev? localUrl : onlineUrl
if(console) console.log(urlToUse);
并检查浏览器的控制台以查看日志。
您还可以使用以下技巧动态设置“ process.env.dev”
if (location.hostname === "localhost" || location.hostname === "127.0.0.1")
process.env.dev = true;
else
process.env.dev = false;
但是,“ location.hostname”的值可能会根据您的开发/主机环境配置而有所不同。