2017-04-20 5 views
0

Ich habe den folgenden Code und Protokolle:Warum wird undefiniert nach dem Wert || anstelle des Wertes gesetzt?

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_URL ist undefined so expected api.serverUrl ich url[env].backend eingestellt werden.

jedoch die Protokolle zeigen dies:

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

Warum ist das? Warum wird expected api.serverUrl nicht auf url[env].backend gesetzt?

+1

Sie sicher sind, dass es tatsächlich 'undefined', nicht die Zeichenfolge' "undefiniert" 'ist? Beide drucken dasselbe mit 'console.log' (nur ein Farb-Tweak in meiner Browser-Konsole). Vielleicht überprüfen Sie, dass 'process.env.BACKEND_URL === undefined'' 'true'' ist? – ShadowRanger

+0

Die einzige Möglichkeit hier ist 'process.env.BACKEND_URL' ist' 'undefined'' statt 'undefined'. Sonst wird das nicht passieren. –

+0

überprüfen Sie Ihre Rechtschreibung im Code, scheint hier in Ordnung – chris

Antwort

1

Der Code funktioniert einwandfrei. Das Problem muss mit den Werten in den Variablen sein.

/*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)

den Code in Reaktion auf Ihren Kommentar aktualisiert, ist es "undefined" statt undefined

+0

Ich denke, das Problem ist, dass "undefined" eigentlich "undefined" ist. Wie kann ich "undefined" in "undefined" verwandeln? – alex

+0

@alex überprüfen Sie aktualisierten Code –

+0

@HarikrishnanN: Sie müssten auf ternäre Prüfung wechseln, oder Sie speichern nie den nicht definierten Wert von 'BACKEND_URL'. So etwas wie 'api.serverUrl = process.env.BACKEND_URL! ==" undefined "? process.env.BACKEND_URL: url [env] .backend' – ShadowRanger

Verwandte Themen