2017-04-20 46 views
0

我有下面的代码和原木:为什么undefined被设置而不是||之后的值?

console.log('PROCESS:', process.env.BACKEND_URL) 
api.serverUrl = process.env.BACKEND_URL || url[env].backend 
console.log('URL:', url[env].backend) 
console.log('API:', api.serverUrl) 

process.env.BACKEND_URLundefined所以我expected api.serverUrl设置为url[env].backend

但是日志显示此:

PROCESS: undefined 
URL: https://vrbackendus.avosapps.us/api 
API: undefined 

这是为什么?为什么expected api.serverUrl被设置为url[env].backend

+1

你确定它实际上是'undefined',不是字符串' “未定义”'?他们都用'console.log'打印出来(只是在我的浏览器控制台中进行颜色调整)。也许检查'process.env.BACKEND_URL === undefined'是否为'true'? – ShadowRanger

+0

这里唯一的可能性是'process.env.BACKEND_URL'是'undefined''而不是'undefined'。否则,这不会发生。 –

+0

仔细检查您在实际代码中的拼写,在这里似乎还行 – chris

回答

1

代码工作正常。问题必须与变量中的值相关。

/*Values i had given to test*/ 
 
var process ={}; 
 
process.env={}; 
 
var api={}; 
 
process.env.BACKEND_URL = "undefined"; 
 
var url = []; 
 
var env = "test"; 
 
url[env] ={}; 
 
url[env].backend = "test"; 
 
/*****/ 
 

 
console.log('PROCESS:', process.env.BACKEND_URL) 
 
api.serverUrl = (process.env.BACKEND_URL === "undefined" ? url[env].backend : process.env.BACKEND_URL); 
 
console.log('URL:', url[env].backend) 
 
console.log('API:', api.serverUrl)

更新的代码响应您的评论,这是"undefined"而不是undefined

+0

我认为问题在于undefined实际上是undefined。我怎样才能把'undefined''变成'undefined'。 – alex

+0

@alex检查更新代码 –

+0

@HarikrishnanN:您需要切换到三元检查,否则您将永远不会存储'BACKEND_URL'的非未定义值。就像'api.serverUrl = process.env.BACKEND_URL!==“undefined”? process.env.BACKEND_URL:url [env] .backend' – ShadowRanger

相关问题