簡體   English   中英

一對多關系 Node Js

[英]one-to-many relationship Node Js

我試圖根據他們的 session_id 從當前登錄的用戶中選擇所有照片。

我有一個照片表,用於跟蹤屬於每個用戶的圖片。

身份證 | 用戶照片 | user_id(外鍵)

let select_photos_sql = "SELECT * FROM photos WHERE user_id = ?";
mysql_connection.query(select_photos_sql, [session_id], function (error, rows) {

    if(error){
        res.send("An error has occurred, please try again later.");
    } else {

        if(rows.length > 0){ /**IS THIS BLOCK NECESSARY? WHEN I CHANGE IT TO === 1, I DON'T GET THE 
                                ERROR BUT I GET NO PHOTOS FOUND**/

            rows.forEach(function (row) {

                let photos = row.user_photos;

                console.log(photos); /**LOGS OUT THE PHOTOS FROM THE USER BUT CAN'T DISPLAY IT**/

                res.render("user_photos", {photos: photos});
            });


        } else {
            res.send("No photos found.");
        }

    }

   });

當我運行代碼時,我不斷收到此錯誤消息“在將標頭發送到客戶端后無法設置標頭。” 我究竟做錯了什么? 我需要在這里加入用戶表嗎? 任何幫助將不勝感激。

“發送到客戶端后無法設置標頭。” 意味着您正在嘗試向用戶發送多個響應,使用可以使用此功能

res.json(rows.map(function (row) { return row.user_photos }))

您不能從循環發送響應,因為它第一次發送響應,之后,它給出錯誤。 請試試這個-

let select_photos_sql = "SELECT * FROM photos WHERE user_id = ?";
 mysql_connection.query(select_photos_sql, [session_id], function (error, 
rows) {
if(error){
    res.send("An error has occurred, please try again later.");
} else {

    if(rows.length > 0){ /**IS THIS BLOCK NECESSARY? WHEN I CHANGE IT TO === 1, I DON'T GET THE 
                            ERROR BUT I GET NO PHOTOS FOUND**/
        var photos_arr = [];
        var photo_count = 0;
        rows.forEach(function (row) {

            let photos = row.user_photos;

            console.log(photos); /**LOGS OUT THE PHOTOS FROM THE USER BUT CAN'T DISPLAY IT**/
            photos_arr.push(photos);
            photo_count = photo_count+1;
        });
        if (photo_count == rows.length) {
            res.render("user_photos", {photos: photos_arr});
        }

    } else {
        res.send("No photos found.");
    }
}
});

暫無
暫無

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

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