Подключение к Cosmos Graph DB через NodeJs

Я хочу подключиться к базе данных космического графа в NodeJs. Реализованный образец взят из документации. Я изменил пример для подключения к эмулятору следующим образом:

var Gremlin = require("gremlin-secure");

const client = Gremlin.createClient(
    8081,
    "localhost", // or 127.0.0.1
    {
        "session": false,
        "ssl": false,
        "user": "/dbs/graphdb/colls/graphcollz",
        "password": "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="  
    });

console.log('Running Drop');
client.on('error', (err) => {
     console.log(err.message);
});

Я должен упомянуть, что в вышеупомянутой документации упоминается, что:

Конечная точка Gremlin должна быть только именем хоста без номера протокола / порта, например mygraphdb.graphs.azure.com (не https://mygraphdb.graphs.azure.com или mygraphdb.graphs.azure.com:433).

Следовательно, адрес конечной точки для базы данных localhost без какого-либо протокола / порта. Кроме того, ssl имеет значение false, чтобы предотвратить ошибку «самоподписанный сертификат», а graphdb и graphcollz были созданы ранее в эмуляторе.

Таким образом, я получил следующую ошибку при попытке выполнить следующий запрос:

client.execute('g.V().drop()', {}, (err, results) => {
     if (err) return console.error(err);
     console.log(results);
});

Ошибка:

читать ECONNRESET

Кроме того, сообщение Node js ECONNRESET не может помочь решить проблему подключения к эмулятору.

Теперь возникает вопрос: как я могу подключиться к эмулятору базы данных cosmos graph через NodeJS?


person OmG    schedule 04.07.2017    source источник


Ответы (1)


Эмулятор CosmosDB эмулирует только конечную точку DocumentDb. Эмулятор можно использовать с .NET GraphDb SDK, но не с модулем Node gremlin-secure.

Вот разница:

Пакет SDK для .NET GraphDb преобразует запрос Gremlin в запрос DocumentDb на стороне клиента. Затем он вызывает конечную точку DocumentDb в Azure (your-site.documents.azure.com).

Пакет SDK для Node GraphDb отправляет запрос Gremlin в виде строки в конечную точку GraphDB в Azure (your-site.graphs.azure.com). Эта конечная точка, похоже, выполняет код, аналогичный .NET SDK, но на стороне сервера, преобразуя запрос Gremlin в запрос DocumentDb.

Изменить: похоже, что Azure добавила рекламное объявление на страницу эмулятора, в котором говорится, что они в настоящее время не поддерживают graphdb и таблицы. Тем не менее, я считаю, что мой ответ верен: вы можете использовать .NET GraphDB SDK и эмулятор. (но продукт находится на стадии предварительного выпуска, поэтому в него также могут быть внесены изменения ...):

введите описание изображения здесь

person Michael Finger    schedule 05.07.2017
comment
В любом случае мне нужно подключиться к GraphDB через NodeJs. Поэтому .NET SDK у меня не работает. Кроме того, я использовал его раньше и одобряю ваш пост о переводе запроса графа в запрос БД документа. - person OmG; 05.07.2017