当前位置: 首页 > 知识库问答 >
问题:

node.js将图像数组添加到相应的数组中

晋坚
2023-03-14

我是Node.js的新手,我正在从数据库(操作)中获取一些数据。每个操作都在另一个表中注册了许多图像,这样我就可以通过操作ID获取它们。

我正在尝试将这些图像的数组添加到相关操作中,这样我就可以在前端循环遍历它们。

在php中,我经常这样做:

    $return = array();
    $images = array();
    $image = array();

    $select = "SELECT id, title, description FROM actions WHERE id = ? order by id DESC";
    $stmt = $mysqli->prepare($select);
    $stmt->bind_param('s', $id);
    $stmt->execute();
    $stmt->store_result();
    $stmt->bind_result($id, $title, $description);

    while ($stmt->fetch()) {
        $registers = array(
            "id" => $id, "title" => $title, "description" => $description, "images" => $image
        );

        $selectImages = mysqli_query($mysqli, "SELECT id, image FROM action_images WHERE action_id = '" . $id . "' ");
        while ($row = $selectImages->fetch_array(MYSQLI_BOTH)) {

            $images = array("imageID" => $row['id'], "image" => $row['image']);
            array_push($registers["images"], $images);
        }
        
        $return[] = $registers;

    }

javscript/node.js中有类似的内容吗?我尝试了下面代码中描述的一些事情,但没有像预期的那样工作。

这是我的控制器:

async selectActions(req, res) {

        let actionData = [];

        conn.execute('SELECT * FROM actions',
            function (err, results, fields) {

                // console.log(err);
                // console.log(results);

                if (err == null) {

                    results.forEach(action => {
                        conn.execute('SELECT * FROM actions_images WHERE actionID = ?',
                            [action.id],
                            function (imagesError, imagesResults, ImagesFields) {

                                // I've tried some things like:
                                actionData = [results, imagesResults];
                                // and
                                actionData = [...results, ...imagesResults]
                                // and
                                results.push(imagesResults)
                                // but nothing had the expected results displayed in the image below
                                console.log(actionData);
                            }
                        );
                    });

                    return res.json(results);
                } else {
                    return res.json('error fetching actions from database: ' + err);
                }
            });

    },

操作图像数组必须是每个操作项中的另一项:

共有1个答案

魏健柏
2023-03-14

试试这个...

Promise.all(results.map((action, index) => {
    return Promise(resolve => {
        conn.execute('SELECT * FROM actions_images WHERE actionID = ?',
            [action.id],
            function(imagesError, imagesResults, ImagesFields) {
                results[index].action_images = imagesResults;
                resolve(true);
            }
        );
    })

}))
console.log(results);
 类似资料:
  • 我有一个url数组,我必须加载所有图像并将其放入图像数组。 我在试这个 但它不起作用。我该怎么做?

  • 我试图将一个数组的值添加到一个已经存在的数组中,该数组已经有一个值。我的方法是创建一个新的数组,其长度为已有数组的长度+我要添加的值的长度。然后,我只需循环整个数组,并将值添加到新数组的索引中。我的方法如下所示: null 我想不出解决办法

  • 我正在创建一个从网站获取信息和下载电影的应用程序。我成功地将信息设置在不同的数组中,并将它们组合到一个数组中。 然而,现在我试图把这个数组放在一个更大的数组中(想使用JSON),但失败了。 我当前的Json输出如下所示: 这是通过以下代码实现的: 我想在此之上添加另一个层,所以有一个名为“电影”的通用标签,对于每一部电影都有这个信息。我该怎么做呢? 更新:添加了以下代码: JSON似乎是正确的,但

  • 我想在Sokoban游戏中保存我的玩家角色的步骤。首先我想用字符的实际位置填充一个int x和y的数组,称为“pos”。然后我想将这个数组添加到数组的ArrayList中,称为“moves”。 一个玩家位置的阵列: ArrayList为所有步骤,玩家在关卡: 如果将“int[]”放在ArrayList的尖括号内,则会出错。 如何将阵列位置添加到ArrayList移动?

  • 在有趣的功能中,当我将列表添加到其他列表时,它正在添加空列表,我可以找到原因有人可以帮助我这个程序是关于查找给定数组的不同组合

  • 问题内容: 如何将行添加到numpy数组? 我有一个数组A: 如果X中每行的第一个元素满足特定条件,我希望从另一个数组X向该数组添加行。 Numpy数组没有像列表那样的“追加”方法,或者看起来。 如果A和X是列表,我只会这样做: 是否有 numpythonic的 方法可以做到这一点? 谢谢,S ;-) 问题答案: 什么啊 如果它是一个二维数组,你怎么能那么其行比作一个号码:? OP评论后编辑: 从