1

私は Node、KnexJS、および promises に非常に慣れていません。アイテムをクエリしてから、それらに関連付けられた画像を追加する単純なループを構築しようとしています。

私はこの答えを見て、いくつかのことを教えていますが、私の場合にはうまくいかないと思います: Knex Transaction with Promises

これまでのところ、私はこれを持っています:

router.get('/', function(req, res, next) {
  knex('parts').where(req.query)
    .orderBy('date_updated', 'DESC')
    .then(function(data){

      for (var k in data) {
        knex('photos')
          .select()
          .where('part_id', data[k].id)
          .then(function(photos){
            data[k].photos = photos;
          });
      }
      return data;

    })
    .then(function(data){
      res.render('parts/index', { title: 'Express', data: data, query: req.query });
    });
});

これは明らかに間違っていますが、これらの場合のアプローチがわかりません。

4

2 に答える 2

2

目的の効果を得るために .map を使用しました。

    .map(function(row) {
      return knex('photos')
        .select()
        .where('part_id', row.id)
        .then(function(photos) {
          row.photos = photos;
          return row;
        });
    })
于 2015-07-30T00:28:45.990 に答える