У меня есть скрипт узла для создания или замены хранимой процедуры в контейнере, чтобы вывести список всех элементов в контейнере. Для этого у меня есть этот код:
const client = new CosmosClient({ endpoint: endpoint, auth: {
masterKey: masterKey } });
const container =
client.database(databaseName).container(containerName);
const sprocId = "listEntries";
const procedure = require(`./${sprocId}`)
container.storedProcedure(sprocId).replace({
body: procedure
}).catch(response => {
if (response.code === 404) {
console.log("No existe, la creamos");
container.storedProcedures.create({
id: sprocId,
body: procedure
});
} else {
console.error(response);
}
}).then(response => console.log("updated!"));
Моя процедура - это пример процедуры по умолчанию для перечисления элементов:
function listEntries(prefix) {
var collection = getContext().getCollection();
// Query documents and take 1st item.
var isAccepted = collection.queryDocuments(
collection.getSelfLink(),
'SELECT * FROM root r',
function (err, feed, options) {
if (err) throw err;
if (!feed || !feed.length) {
var response = getContext().getResponse();
response.setBody('no docs found');
}
else {
var response = getContext().getResponse();
var body = { prefix: prefix, feed: feed[0] };
response.setBody(JSON.stringify(body));
}
});
if (!isAccepted) throw new Error('The query was not accepted by the server.');
}
module.exports = listEntries;
Когда еще не созданы хранимые процедуры, этот код работает нормально (это означает, что .replace работает нормально и отвечает 404 не найден, а затем метод .create работает нормально). Если я захожу на портал Azure, я вижу свою процедуру и выполняю ее без проблем.
Проблема возникает при создании процедуры. Этот код должен использовать метод .replace для обновления функции, но вместо этого метод отвечает:
{ code: 500,
body: '{"code":"InternalServerError","message":"Unknown server error occurred when processing this request.\\r\\nActivityId: f323289c-b143-449e-9d50-e2eb8c374e82, Microsoft.Azure.Documents.Common/2.2.0.0"}',
headers:
{ 'transfer-encoding': 'chunked',
'content-type': 'application/json',
'content-location': 'https://testingresourcefromscript-southcentralus.documents.azure.com/dbs/TestingDataBaseFromScript/colls/Entry/sprocs/listEntries',
server: 'Microsoft-HTTPAPI/2.0',
'x-ms-activity-id': 'f323289c-b143-449e-9d50-e2eb8c374e82',
'strict-transport-security': 'max-age=31536000',
'x-ms-gatewayversion': 'version=2.2.0.0',
date: 'Fri, 08 Mar 2019 14:46:29 GMT',
'x-ms-throttle-retry-count': 0,
'x-ms-throttle-retry-wait-time-ms': 0 },
activityId: 'f323289c-b143-449e-9d50-e2eb8c374e82' }
Понятия не имею, что происходит, потому что это, кажется, общая ошибка: (
Спасибо за вашу помощь заранее.