저장 프로시저 작성
트랜잭션은 JavaScript 함수로 정의됩니다. 그런 다음 저장 프로시저가 호출될 때 함수가 실행됩니다.
function name() {
}
함수 내에서 getContext()
메서드는 다음과 같은 여러 작업을 수행하는 데 사용될 수 있는 컨텍스트 개체를 검색합니다.
HTTP 응답 개체에 액세스
해당 Azure Cosmos DB SQL API 컨테이너에 액세스
컨텍스트 개체를 사용하여 HTTP 응답 개체에 액세스하도록 getResponse()
메서드를 호출하여 getResponse()
(200)을 반환하고 응답 본문을 고정 문자열로 설정하는 등의 작업을 수행할 수 있습니다.
function greet() {
var context = getContext();
var response = context.getResponse();
response.setBody("Hello, Learn!");
}
다시 말하자면, 컨텍스트 개체를 사용하면 JavaScript 쿼리 API를 사용해 getCollection()
메서드를 호출하여 컨테이너에도 액세스할 수 있습니다.
function createProduct(item) {
var context = getContext();
var container = context.getCollection();
}
이 시점에서 새 문서 만들기와 같은 일반적인 작업을 수행할 수 있습니다.
function createProduct(item) {
var context = getContext();
var container = context.getCollection();
container.createDocument(
container.getSelfLink(),
item
);
}
이 저장 프로시저는 거의 완료되었습니다. 이 코드는 잘 실행되지만 오류가 발생할 위험이 있으며 저장 프로시저가 시간 제한을 초과한 경우 반환되지 않을 가능성이 있습니다. 다음 두 가지 변경 내용을 적용하여 코드를 업데이트해야 합니다.
container.createDocument의 부울 반환 값을 저장한 다음, 이를 사용하여 임박한 서버 시간 제한으로 인해 함수에서 반환해야 하는지 여부를 결정합니다.
container.createDocument에 세 번째 매개 변수를 추가하여 잠재적 오류를 처리하고 이 저장 프로시저의 응답을 작업에서 반환된 새로 만든 항목으로 설정합니다.
function createProduct(item) {
var context = getContext();
var container = context.getCollection();
var accepted = container.createDocument(
container.getSelfLink(),
item,
(error, newItem) => {
if (error) throw error;
context.getResponse().setBody(newItem)
}
);
if (!accepted) return;
}
팁
또는 getContext().getCollection()
과 동등한 __
(이중 밑줄) 바로 가기를 사용할 수 있습니다.