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

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

在 go api 中收到錯(cuò)誤消息以及結(jié)果

在 go api 中收到錯(cuò)誤消息以及結(jié)果

Go
回首憶惘然 2022-10-24 08:50:14
我在 API 中有一條路線,可以讓用戶(hù)使用roles. 在這條路線中,如果我輸入用戶(hù)的姓名,那么我將獲得所有roles分配給他/她的信息。但問(wèn)題是它只返回第一個(gè)結(jié)果。如果該角色存在于另一個(gè)對(duì)象中,則不會(huì)顯示該角色。所以我對(duì)該行發(fā)表評(píng)論return,一切正常,但隨著結(jié)果,我收到錯(cuò)誤消息:"user not found"你們能告訴我我在做什么錯(cuò)誤嗎?謝謝你。路線 -GET("/users/:username", controllers.GetUserByRole)控制器 -func GetUserByRole(c *gin.Context) {    paramId := c.Param("username")    .............    .............    .............    var newUsers []models.User    iter := client.Collection("users").Documents(ctx)    for {        doc, err := iter.Next()        if err == iterator.Done {            break        }        if err != nil {            log.Fatalf("Failed to iterate: %v", err)        }        var tempUsers models.User        if err := doc.DataTo(&tempUsers); err != nil {            break        }        newUsers = append(newUsers, tempUsers)    }    for _, a := range newUsers {        for _, element := range a.Roles{                if element == paramId {            c.IndentedJSON(http.StatusOK, a)            return     //if I comment this line line then I geting message `"user not found"` along with results        }    }    }    c.IndentedJSON(http.StatusNotFound, gin.H{"message": "user not found"})}URL:http://localhost:3000/users/Analyst響應(yīng)應(yīng)該是:  {     "id": 1,     "name": "Leanne Graham",     "username": "Bret",     "roles": ["Developer", "Analyst"],  },  {    "id": 3,    "name": "Clementine Bauch",    "username": "Samantha",    "roles": ["Manger", "Analyst"],  }但我是這樣的(只有第一個(gè)匹配的):  {     "id": 1,     "name": "Leanne Graham",     "username": "Bret",     "roles": ["Developer", "Analyst"],  }如果我評(píng)論該return行,則響應(yīng)為(期望的結(jié)果 + 錯(cuò)誤消息):  {     "id": 1,     "name": "Leanne Graham",     "username": "Bret",     "roles": ["Developer", "Analyst"],  },  {    "id": 3,    "name": "Clementine Bauch",    "username": "Samantha",    "roles": ["Manger", "Analyst"],  }{    "message": "album not found"}
查看完整描述

2 回答

?
素胚勾勒不出你

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

你可以這樣做


var userList []models.User

for _, a := range newUsers {

    for _, element := range a.AssignedTo {

        if element == paramId {

            userList = append(userList, a)

        }

    }

}

if len(userList) == 0 {

     c.IndentedJSON(http.StatusNotFound, gin.H{"message": "user not found"})

     return

}


c.IndentedJSON(http.StatusOK, userList)


查看完整回答
反對(duì) 回復(fù) 2022-10-24
?
BIG陽(yáng)

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

看起來(lái)你的 return 語(yǔ)句在你的 for 循環(huán)中,所以它找到第一個(gè)值并立即返回。當(dāng)您將其注釋掉時(shí),您的函數(shù)不會(huì)返回,因此它成功完成,然后打印錯(cuò)誤消息。將 return 語(yǔ)句移到兩個(gè) for 循環(huán)之外,應(yīng)該沒(méi)問(wèn)題。此外,通過(guò)錯(cuò)誤標(biāo)志添加用于發(fā)送錯(cuò)誤消息的邏輯。還建議使用 Manjeet Thakur 的替代解決方案。


func GetUserByRole(c *gin.Context) {

    paramId := c.Param("username")

    .............

    .............

    .............

    var newUsers []models.User

    iter := client.Collection("users").Documents(ctx)

 

    for {

        doc, err := iter.Next()

        if err == iterator.Done {

            break

        }

        if err != nil {

            log.Fatalf("Failed to iterate: %v", err)

        }

 

        var tempUsers models.User

        if err := doc.DataTo(&tempUsers); err != nil {

            break

        }

        newUsers = append(newUsers, tempUsers)

    }

    var errorflag := 1

    for _, a := range newUsers {

        for _, element := range a.AssignedTo {

                if element == paramId {

            c.IndentedJSON(http.StatusOK, a)

            errorflag := 0

                 //if I comment this line line then I geting message `"user not found"` along with results

        }

    }

    }

    if errorflag{

    c.IndentedJSON(http.StatusNotFound, gin.H{"message": "user not found"})

    }

    return

}


查看完整回答
反對(duì) 回復(fù) 2022-10-24
  • 2 回答
  • 0 關(guān)注
  • 136 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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