Creación de procedimientos almacenados
Las transacciones se definen como funciones de JavaScript. Luego, la función se ejecuta cuando se invoca al procedimiento almacenado.
function name() {
}
Dentro de la función, el método getContext()
recupera un objeto de contexto que se puede usar para realizar varias acciones, que incluyen:
Acceder al objeto de respuesta HTTP
Acceder al contenedor correspondiente de Azure Cosmos DB for NoSQL
Con el objeto de contexto puede invocar al método getResponse()
a fin de acceder al objeto de respuesta HTTP para realizar acciones como la devolución de una respuesta HTTP OK (200) y el establecimiento del cuerpo de la respuesta en una cadena estática.
function greet() {
var context = getContext();
var response = context.getResponse();
response.setBody("Hello, Learn!");
}
De nuevo, con el objeto de contexto puede invocar al método getCollection()
para acceder al contenedor mediante la API de consulta de JavaScript.
function createProduct(item) {
var context = getContext();
var container = context.getCollection();
}
En este punto puede realizar operaciones típicas como la creación de un nuevo documento.
function createProduct(item) {
var context = getContext();
var container = context.getCollection();
container.createDocument(
container.getSelfLink(),
item
);
}
Este procedimiento almacenado está prácticamente terminado. Aunque este código se va a ejecutar correctamente, existe el riesgo de que se detecten errores y no se pueda devolver si el procedimiento almacenado ha superado el tiempo de espera. Hay que actualizar el código mediante la implementación de dos cambios más:
Almacene el valor booleano devuelto de container.createDocument y úselo para determinar si se debe devolver desde la función debido a un tiempo de espera del servidor inminente.
Agregue un tercer parámetro a container.createDocument para controlar posibles errores y establezca la respuesta de este procedimiento almacenado en el elemento recién creado devuelto desde la operación.
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;
}
Sugerencia
También puede usar el acceso directo __
(subrayado doble) como equivalente a getContext().getCollection()
.