отношение один ко многим Node Js - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь выбрать все фотографии текущего зарегистрированного пользователя на основе их session_id.

У меня есть таблица фотографий, в которой отслеживаются фотографии, принадлежащие каждому пользователю.

id | user_photos | 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.");
        }

    }

   });

Когда я запускаю код, я получаю сообщение об ошибке «Невозможно установить заголовки после того, как они отправлены клиенту». Что я делаю неправильно? Нужно ли присоединяться к таблице пользователей здесь? Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 12 марта 2020

Вы не можете отправить ответ от al oop, поскольку он отправляет ответ в первый раз, а после этого выдает ошибку. Пожалуйста, попробуйте это -

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.");
    }
}
});
0 голосов
/ 12 марта 2020

"Невозможно установить заголовки после их отправки клиенту." означает, что вы пытаетесь отправить более одного ответа пользователю, использование может использовать эту функцию

res.json(rows.map(function (row) { return row.user_photos }))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...