2017-12-18 10 views
1

두 개의 서로 다른 API의 데이터를 사용하는 NodeJS 서버가 있고 하나의 JSON 응답으로 두 결과를 결합하고 싶습니다. 나는 그것을 달성 할 수있는 방법 data 낭포 한 응답 eventReseventBoostRes을 원하는응답 데이터를 하나의 응답으로 병합

EventModal.eventSearch(eventReq, type, async function (eventRes) { 
     EventModal.getBoostEvents(eventReq, type, async function (eventBoostRes) { 
          res.json({ 
           status: true, 
           data: eventRes, 
           eventBoostRes: eventBoostRes, 
          }); 
     }); 
    }); 

: 여기 당신에게 코드를 보낸다?

eventReseventBoostRes은 쿼리 결과입니다.

미리 감사드립니다.

+0

'eventRes'와'eventBoostRes'에 포함 된 것을 확장 할 수 있습니까? –

+0

[두 JavaScript 개체의 속성을 어떻게 동적으로 병합 할 수 있습니까?] (https://stackoverflow.com/questions/171251/how-can-i-merge-properties-of-two-javascript-objects-dynamically) –

+0

JS에서는 모든 것이'obj.key = val'처럼 간단합니다. 여기서 val은 정수, 객체 또는 함수와 같은 js 할당 가능 엔티티가 될 수 있습니다. ({사실, 데이터 {eventRes : eventRes, eventBoostRes : eventBoostRes} 가 상태})' –

답변

1

질문하지.

그러나 2 개의 배열을 가져 오는 중이고 응답에서 단일 배열을 반환하려는 것처럼 들립니다.

EventModal.eventSearch(eventReq, type, async function (eventRes) { 
    EventModal.getBoostEvents(eventReq, type, async function (eventBoostRes) { 
     res.json({ 
      status: true, 
      data: eventRes.concat(eventBoostRes) 
     }); 
    }); 
}); 

그러나,이 동기화 실행이 쿼리의 원인이됩니다 최적되지 않습니다 : 빠른 (더러운)이 작업을 수행하는 방법은 array.concat(anotherArray) 기능을 사용할 수 있습니다. 당신은이 약속을 사용하여 병렬로이 쿼리를 실행하는 데 최적화 수 : 한편

Promise.all([ // this will run in parallel 
    EventModal.eventSearch(eventReq, type), 
    EventModal.getBoostEvents(eventReq, type) 
]).then(function onSuccess([ eventRes, eventBoostRes ]) { 
    res.json({ 
    status: true, 
    data: eventRes.concat(eventBoostRes) 
    }); 
}); 

을; 이것은 아마도 쿼리 수준에서 처리되어야합니다.

2

이처럼 그들을 결합 할 수 있습니다 : 매우 명확

EventModal.eventSearch(eventReq, type, async function (eventRes) { 
    EventModal.getBoostEvents(eventReq, type, async function (eventBoostRes) { 
     res.json({ 
      status: true, 
      data: { 
       eventRes, 
       eventBoostRes 
      } 
     }); 
    }); 
}); 
+0

가 포함이 CSN 키 변수 –

+1

'eventRes'와'eventBoostRes'가 어떻게 생겼는지 붙여 넣을 수 있습니까? 그리고 '데이터'가 포함 할 결과를 응답에 붙여 넣으시겠습니까? – maxpaj