Nodejs express Knex select

привет друзья я хочу сделать select в мою базу данных используя knex, но у меня есть эта ситуация, я хочу послать несколько объектов, в этом случае первым, что я хочу послать, являются owners, что я обычно делаю, состоит в том, чтобы делать мой query и в ответе прямая власть response с объектом, который я хочу послать. нечто похожее...

  const query = knex().select('*').from('USERS_').where('owner',[1]);
  const owners = [];
  query.then((data)=>{

    data.forEach((data) => {
      owners.push(data);

      res.render('projects/add-project',{owners});
    });
  }).catch((err)=>{
    console.log(err)
  });

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

router.get('/add-project', (req, res) => {
  const query = knex().select('*').from('USERS_').where('owner',[1]);
  const owners = 
  query.then((data)=>{

    data.forEach((data) => {
      owners.push(data);

      return owners;
    });
  }).catch((err)=>{
    console.log(err)
  });

  const otroquery = ... ;

  const otroquery = ... ;

  console.log(owners);
  res.render('projects/add-project'{misqueries,otroquery,....});
});
1
задан 21.03.2019, 02:37
1 ответ

RawrdrГ-guez. Ophanim,

, Чтобы реализовывать то, что ты ищешь, ты можешь делать это двумя формами (basГЎndome в твоем случае):

  • Promise.all

    router.get('/add-project', (req, res) => {
        const owners = []
        const promises = []
    
        const query1 = knex().select('*').from('USERS_').where('owner',[1]);
        promises.push(query1)
    
        const query2 = .....
        promises.push(query2)
    
        const query3 = .....
        promises.push(query2)
    
        Promise.all(promises)
           .then(([query1,query2,query2]) =>{
               //Aqui tendrias las tres promises/queries resueltas para trabajar con ellas
    
              res.render('projects/add-project'{misqueries,otroquery,....});
        })
       .catch(err => console.log(err.mnessage))
    })
    
  • Async / Await

    router.get('/add-project', async (req, res) => {
        try{
    
         const query1 = await knex().select('*').from('USERS_').where('owner',[1]);
         const owners = []
    
         const query2 = await .....
    
         const query3 = await .....
    
         //Aqui tendrias las tres queries resueltas como variables para trabajar con ellas
    
         res.render('projects/add-project'{misqueries,otroquery,....});
    
        }catch(e){
           console.log(e.message)
        }
    })
    

Espero, что с этим info ты смог решать твои сомнения.

Приветствие

1
ответ дан 02.12.2019, 05:21