2017-11-14 4 views
0

데이터베이스를 쿼리하는 앱이 있습니다.node.js에 요청 ID 및 요청 객체 저장

사용자가 실행중인 쿼리를 취소 할 수있는 기능을 내 앱에 제공하고 싶습니다.

나는 requestId(uuid) 호출을 가지고 있으며 각 요청 객체에 매핑하여 일부 저장소에 저장하고 있습니다. 사용자는 요청 ID (요청 ID로 끝점에 도달)를 기반으로 요청을 취소 할 수 있습니다. 각 요청은 콜백에 의해 처리됩니다. 콜백에서

, 나는이 : 요청을 닫는 어떤

req.on("close", function() {}); 

.

내 nowflake 데이터베이스에서 쿼리를 실행하는 데 snowflake-sdk을 사용하고 있습니다.

var statement = connection.execute({ 
    sqlText: sql, 
    complete: function (err, stmt, rows) {} 
}); 
req.on("close", function() { 
    statement.cancel(function(err, stmt) { 
     if (err) { 
      console.error('Unable to abort statement due to the following error: ' + err.message); 
     } else { 
      console.log('Successfully aborted statement'); 
     } 
    }); 
}); 

req

오브젝트가 함수에 전달되고, req는 HTTP 요청 될 것이다.

이제는 닫기 이벤트를 생성하는 방법과 각 취소 요청을 원래 닫는 요청에 매핑하는 방법이 문제입니다.

나는 또한 알고 싶었습니다. 어떤 제안이 있습니까? 이것이 NodeJS에서 올바른 방법인가요? 그리고 reddish 또는 cache 또는 session과 같은 요청 ID와 요청 객체를 저장하는 올바른 방법은 무엇입니까?

+0

콜백이 요청을 닫지 않고 요청을 닫을 때 호출됩니다. 따라서 문제는 API가이를 지원할 경우 실행 요청을 어떻게 닫을 수 있는지입니다. 어떤 API를 사용하고 있습니까? – BlackJack

+0

@BlackJack 질문을 편집했습니다. – user3649361

+0

코드를 더 포함하십시오. 예를 들어서'req'가 어디에서 왔는지, 전달되는 기능은 무엇입니까? –

답변

0

제 질문은 왜 http 요청을 사용하는 것입니까? 이론적으로, Snowflake SDK는 쿼리 실행/취소에 사용되는 모든 http 요청을 마무리했습니다. req 개체를 http 요청으로 사용하는 이유는 무엇입니까?