Rumah > pembangunan bahagian belakang > Golang > Pengguna findOne mengembalikan sifar tetapi data wujud dalam Go Fiber Go Mongo

Pengguna findOne mengembalikan sifar tetapi data wujud dalam Go Fiber Go Mongo

PHPz
Lepaskan: 2024-02-06 10:48:11
ke hadapan
902 orang telah melayarinya

用户 findOne 返回 nil,但数据存在于 Go Fiber Go Mongo 中

Kandungan soalan

Saya mempunyai masalah di mana saya cuba mendapatkan butiran pengguna dengan melakukan perkara berikut

err := usercollection.findone(ctx, bson.m{"email": input.email}).decode(&input)
Salin selepas log masuk

dalam pengawal pengguna saya tetapi ia mengembalikan sifar. Saya mempunyai semakan mongo.errnodocuments tetapi ia masih berlalu kepada semakan tiada dan tidak mengembalikan apa-apa tetapi saya mempunyai pengguna dengan id e-mel yang sama. Pengawal pengguna saya kelihatan seperti ini.

func SignInUser(c *fiber.Ctx) error {
    ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
    var input models.User
    defer cancel()

    if err := c.BodyParser(&input); err != nil {
        return c.Status(http.StatusBadRequest).JSON(responses.UserResponse{Status: http.StatusBadRequest, Message: "error", Data: &fiber.Map{"data": err.Error()}})
    }

    input.Email = util.NormalizeEmail(input.Email)
    fmt.Println("received data", input.Email)
    err := userCollection.FindOne(ctx, bson.M{"email": input.Email}).Decode(&input)

    if err == mongo.ErrNoDocuments {
        fmt.Println("User not found>>>")
    } else if err == nil {
        fmt.Println("err")
    }
    return c.Status(http.StatusNotFound).JSON(responses.UserResponse{
        Status:  http.StatusNotFound,
        Message: "Account not found",
        Data: &fiber.Map{
            "data": "No Account belongs to given credentials"}})
}
Salin selepas log masuk

Terima kasih atas sebarang bantuan. Terima kasih terlebih dahulu


Jawapan betul


Anda harus mengembalikan model pengguna anda pada penghujung fungsi:

return c.JSON(fiber.Map{"status": "success", "message": "User found", "data": input})
Salin selepas log masuk

Atas ialah kandungan terperinci Pengguna findOne mengembalikan sifar tetapi data wujud dalam Go Fiber Go Mongo. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan