1

我目前正在尝试使用 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.

索引.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();

包.json

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

2 回答 2

0

您可以尝试将最后两行更改为:

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

您不是在等待异步函数调用并在调用DocumentStore后立即处理asyncFunction()

DocumentStore.dispose()应在应用程序关闭时调用。它清理缓存并关闭打开的连接。

于 2019-06-03T09:18:48.533 回答
0

试试这样:

import { DocumentStore } from "ravendb";

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

const conventions = store.conventions;  

store.initialize();  
于 2019-05-31T15:55:15.053 回答