按照官网教程操作创建数据库:
// 引包
var Database = require('arangojs').Database
var db = new Database('http://127.0.0.1:8529');
db.createDatabase('mydb').then(
() => console.log('Database created'),
err => console.error('Failed to create database:', err)
);
报错:Failed to create database: { ArangoError: not authorized to execute this request
。
为 权限 问题(连接 arangodb 使用的 user 没有访问 system 数据库的权限),解决方案:使用 root
用户登录 system 数据库
代码改为:
// 引包
var Database = require('arangojs').Database
const username = 'root' // default user
const password = '' // blank password by default
var db = new Database('http://127.0.0.1:8529');
db.useBasicAuth(username, password);
db.createDatabase('mydb1').then(
() => console.log('Database-mydb1 created'),
err => console.error('Failed to create database-mydb1:', err)
);
错误解决,控制台成功输出:
Database-mydb1 created
其它补充:
- 引包的时候可以不指明 .Database
- 可以在上方定义 username 和 password 的时候同时定义 host 和 port
🌰:
// 引包
var arangojs = require('arangojs')
const host = '127.0.0.1'
const port = '8529'
const username = 'root' // default user
const password = '' // blank password by default
const database = '_system'
db = new arangojs.Database({
url: `http://${host}:${port}`,
databaseName: database
});
db.useBasicAuth(username, password);
db.createDatabase('mydb2').then(
() => console.log('Database-mydb2 created'),
err => console.error('Failed to create database-mydb2:', err)
);