Подключение к ravendb с помощью node.js - PullRequest
1 голос
/ 31 мая 2019

В настоящее время я пытаюсь настроить небольшой проект с помощью node.js и ravendb. Но когда я пытаюсь подключиться к тестовому серверу ravendb или локальному серверу, я получаю следующую ошибку:

(node:20336) UnhandledPromiseRejectionWarning: AllTopologyNodesDownException: Tried to send BatchCommand request via POST http://live-test.ravendb.net/databases/Northwind/bulk_docs to all configured nodes in the topology, all of them seem to be down or not responding. I've tried to access the following nodes: http://live-test.ravendb.net: socket hang up
at getError (C:\...\node_modules\ravendb\dist\Exceptions\index.js:17:19)
at Object.throwError (C:\...\node_modules\ravendb\dist\Exceptions\index.js:13:11)
at RequestExecutor._throwFailedToContactAllNodes (C:\...\node_modules\ravendb\dist\Http\RequestExecutor.js:669:22)
at RequestExecutor.<anonymous> (C:\...\node_modules\ravendb\dist\Http\RequestExecutor.js:573:26)
at Generator.next (<anonymous>)
at fulfilled (C:\...\node_modules\ravendb\dist\Http\RequestExecutor.js:4:58)
at process._tickCallback (internal/process/next_tick.js:68:7) 
(node:20336) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). 
(rejection id: 1) 
(node:20336) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

index.js

const { DocumentStore } = require('ravendb');

const store = new DocumentStore("http://live-test.ravendb.net", "Northwind");

store.initialize();   

const session = store.openSession();

async function asyncFunction() {
    let test = {
        name: 'abc',
        value: '123',
    };

    await session.store(test, 'test/');
    console.log(test.id);
    await session.saveChanges();
}

asyncFunction()

store.dispose();

package.json

{
  "dependencies": {
    "ravendb": "^4.1.5"
  }
}

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Можете ли вы попробовать изменить последние 2 строки на:

asyncFunction()
    .then(() => store.dispose());

Вы не ожидаете асинхронного вызова функции и утилизируете DocumentStore сразу после вызова asyncFunction().

DocumentStore.dispose()должен вызываться при закрытии приложения.Очищает кеши и закрывает открытые соединения.

0 голосов
/ 31 мая 2019

Попробуй так:

import { DocumentStore } from "ravendb";

const store = new DocumentStore(["http://live-test.ravendb.net"],"Northwind");                       

const conventions = store.conventions;  

store.initialize();  
...