簡體   English   中英

如何返回對象而不是數組?

[英]How can I return an object instead of an array?

我試圖返回一個 JSON 對象,但它返回一個數組。 我使用主鍵進行查詢,所以我確信我只會得到一個結果。

這是我的方法:

router.get("/student_info/:id", (req, res, next) => {
    connection.getConnection((error, currentConnection) => {
        if (!!error) {
            console.log("Error occurred while connecting db")
        } else {
            let id = req.params.id;
            currentConnection.query("SELECT * FROM students WHERE id=" + "'" + id + "'", (error, rows, fields) => {
                if (!!error) {
                    console.log(error.message)
                } else {
                    res.status(200).json(rows);
                }
                currentConnection.release();
            });
        }
    });
});

我想要的是這個:

    {
        "id": "171-15-8966",
        "name": "Alif Hasnain",
        "course_code": "CSE412,CSE413"
    }

但我得到這樣的結果:

[
    {
        "id": "171-15-8966",
        "name": "Alif Hasnain",
        "course_code": "CSE412,CSE413"
    }
]

只需在 json 轉換之前獲取數組的第一個元素:

res.status(200).json(rows[0]);

默認情況下,查詢返回選擇查詢所反映的行數組。 由於您的查詢具有單個結果,因此它作為單個對象的數組返回給用戶。

您可以將其更改為

res.status(200).json(rows[0]);

如果有更好的替代品,請告訴我們。

試試這個,使用嵌套數組解構

res.status(200).json([[rows]]);

您可以閱讀此博客以了解有關 ES6 - 解構的更多信息

ES6 - 理解解構

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM