Node.js+ArangoDB報錯:Failed to create database: { ArangoError: not authorized to execute this request

按照官網教程操作創建數據庫:

// 引包
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)
);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章