我正在尝试使用2.2 GA版本的OrientDB测试最新版的Orientjs。使用下面的非常简单的代码,我不会收到任何错误或异常,但也不会从回调函数获得任何输出。我也看不到OrientDB服务器日志中的任何内容(该日志在本地服务器上运行,可通过Web GUI访问)。

var OrientDB = require('orientjs');

try {
  var server = OrientDB({
    host: 'localhost',
    port: 2424,
    username: 'admin',
    password: 'admin'
  });
} catch(error) {
  console.error('Exception: ' + error);
}

console.log('>> connected');

try {
  server.list()
  .then(function(dbs) {
    console.log(dbs.length);
  });
} catch(error) {
  console.error('Exception: ' + error);
}

try {
  var db = server.use({
   name: 'GratefulDeadConcerts',
   username: 'admin',
   password: 'admin'
  });
} catch(error) {
  console.error('Exception: ' + error);
}

console.log('>> opened: ' + db.name);

try {
  db.class.list()
  .then(function(classes) {
    console.log(classes.length);
  });
} catch(error) {
  console.error('Exception: ' + error);
}

db.close()
.then(function() {
  server.close();
});


如何解决此问题?

最佳答案

我认为用户名和密码错误。

顺便说一句,如果您想捕获错误,则应使用promise catch而不是try / catch块

  var OrientDB = require('orientjs');
  var server = OrientDB({
    host: 'localhost',
    port: 2424,
    username: 'admin',
    password: 'admin'
  });

  server.list()
  .then(function(dbs) {
    console.log(dbs.length);
  }).catch(function(error){
    console.error('Exception: ' + error);
  });


这个脚本会怎样?

 var OrientDB = require('orientjs');
  var server = OrientDB({
    host: 'localhost',
    port: 2424,
    username: 'root',
    password: 'root'
  });

  var db = server.use({
   name: 'GratefulDeadConcerts',
   username: 'admin',
   password: 'admin'
  });




  db.query('select from v limit 1')
  .then(function(results) {
  console.log(results)
    server.close();

  }).catch(function(error){
      server.close();
  });

10-08 04:14