使用OrientJS模块连接到NodeJS中的OrientDB-“套接字关闭”错误

时间:2018-08-17 22:39:48

标签: node.js database sockets orientdb orientjs

我正在使用OrientJS(v2.2.10)在NodeJS(v8.11.3)中开发一个应用程序,该应用程序将连接到本地托管的OrientDB(v3.0.6)数据库并对其进行查询。但是,当我尝试运行程序时,每次都会收到“套接字关闭”错误。

我能够连接到数据库并通过OrientDB的控制台和Web界面对其进行查询,因此我知道可以通过地址http://localhost:2480访问该数据库。如果在命令提示符中运行“ netstat -a”,则可以看到端口2480正在侦听TCP连接。

这是我当前正在运行的代码:

//Import OrientJS driver for OrientDB
var OrientJs = require('orientjs');

//Connect to OrientDB server
var server = OrientJs({
    host: "localhost",
    port: "2480",
    username: "root",
    password: "root"
});

//Connect to 'demodb'
var db = server.use({
    name: 'demodb',
    username: 'root',
    password: 'root'
});

console.log("Connected to database")

//Select all entries in 'Castles' table and print to console
db.select().from('Castles').all()
.then(function(result) {
  console.log(result);
});

//Close connection to database
db.close();

我收到的错误是:

Unhandled rejection OrientDB.ConnectionError [0]: Socket Closed
    at Connection.<anonymous> (C:\Program Files\nodejs\apollo_server\node_modules\orientjs\lib\transport\binary\connection.js:277:16)
    at Object.onceWrapper (events.js:313:30)
    at emitNone (events.js:106:13)
    at Socket.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)

由于数据库似乎运行正常,我不确定该错误的原因。通过搜索此错误,我找不到任何有用的信息;谷歌搜索” orientjs“”套接字关闭“ 仅返回1个结果,所以我对如何解决此问题有点困惑。

任何见识都将受到赞赏!

1 个答案:

答案 0 :(得分:0)

进一步调查后,我找到了问题的根源。

事实证明,OrientDB在两个端口上托管服务:2480(HTTP)和2424(二进制)。通过OrientJS模块连接到OrientDB需要使用端口2424而不是2480。这解决了我的问题。