var bookshelf = require('bookshelf')(knex); bookshelf.plugin('pagination'); const ArticuloImagen = bookshelf.Model.extend({ tableName: 'ARTICULOS_IMAGEN' }); const Articulo = bookshelf.Model.extend({ tableName: 'ARTICULOS', imagenes: function () { return this.hasMany(ArticuloImagen, 'id_articulo', 'id'); } }); router.get('/articulos/:page', (req, res) => { Articulo .query((qb) => { qb.where('NHA', 0); qb.where('PreVen', '>', 0); }) .orderBy('id', 'asc') .fetchPage({ pageSize: 150, page: req.params.page, withRelated: ['imagenes'] }) .then(data => { var promisesCodBar = []; data.forEach(articulo => { promisesCodBar.push( knex('CODBAR').where({ CodSec: articulo.get('CodSec'), CodArt: articulo.get('CodArt') }) ); }); Promise.all(promisesCodBar).then((codigoBarra) => { codigoBarra.forEach(codigo => { codigo = codigo[0]; if (codigo) { let articulo = data.filter(art => { return art.get('CodArt') == codigo.CodArt; }); articulo[0].set('codigoBarra', codigo.CodBar); } }); res.status(200).send( { data: data, pagination: data.pagination, }); }); }); }); module.exports = router;