2017-04-20 68 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

相關問題