第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Node JS 防止值未定義崩潰

Node JS 防止值未定義崩潰

慕哥6287543 2023-02-17 16:28:37
我有一個(gè)由用戶確定的值,一旦輸入該值,它就會(huì)檢查 data.json 文件中該值的對(duì)應(yīng)值。問題是如果用戶輸入值沒有相應(yīng)的值,代碼就會(huì)崩潰。var rdata = fs.readFileSync("data.json")var data = JSON.parse(rdata)let name = (val[0]) //val[0] is the value that user entersconsole.log(data[name].value)如果 data.json 中沒有對(duì)應(yīng)的 data[name],代碼就會(huì)崩潰。如何防止 undefined data[name].value 導(dǎo)致代碼崩潰?console.log(data[name].value)                       ^TypeError: Cannot read property 'name' of undefined
查看完整描述

2 回答

?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

有多種方法,正如您從其他人的各種建議中看到的那樣,這取決于您想要完成什么以及您的代碼在做什么。


||如果提供的輸入undefined如下所示,您可以使用 or ( ) 運(yùn)算符回退到默認(rèn)/安全值


  let userInput; //undefined`     

  let x = userInput || "a safe value";

本質(zhì)上,“讓 x 成為 userInput 的任何內(nèi)容,除非它是undefined(或NaN,,null...)。


同樣,您可以進(jìn)行if檢查以確保您期望的值可用且有效:


if(userInput){

    //Happy path, userInput is valid.

}

else {

   // Not so happy path,  do something about it to handle the invalid value.

}

try-catch如果你想處理這個(gè)案例,你可以使用一個(gè)塊。有多種拋出、捕獲和處理錯(cuò)誤的方法,但如果你想通知用戶他們的輸入無效,你可以這樣做:


try {

     //stuff may happen here

     if(userInput) {

        throw new TypeError("A useful description of why this was thrown");

     }

     //if userInput is value, then continue...

catch(error){

    alert("Oops! Seems like the value you entered is not valid. Error:" + error);

}

注意:如果您不確定什么是最好的方法,那么如果您能為我們提供更多代碼和上下文將會(huì)很有用,這樣我們就可以在確定處理此問題的最佳方法之前了解如何以及何時(shí)分配值.


看起來您正試圖在用戶有機(jī)會(huì)輸入之前訪問用戶的輸入數(shù)據(jù),在這種情況下,重構(gòu)您的代碼會(huì)更好。


查看完整回答
反對(duì) 回復(fù) 2023-02-17
?
喵喵時(shí)光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以用于||短路評(píng)估

const data = {

  'def.txt': {

    name: 'def'

  }

}



console.log((data['abc.txt'] || {}).name)

console.log((data['def.txt'] || {}).name)


查看完整回答
反對(duì) 回復(fù) 2023-02-17
  • 2 回答
  • 0 關(guān)注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)