New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

orientdb-rest-api

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

orientdb-rest-api

A node.js driver for OrientDB using the OrientDB RESTful HTTP protocol

  • 1.1.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

orientdb-rest-api

A Node.js driver to talk to the OrientDB REST API for node and the browser Also works with electron and react-native

Very basic http wrapper using superagent based on node-orient-http and tested on OrientDb 2.2.31

Install

npm install orientdb-rest-api

Basic Usage

const OrientDB=require('orientdb-rest-api');

const db = new OrientDB({
  user: 'root',
  password: 'root_passwd',
  host: 'http://localhost:2480',
  database: 'GratefulDeadConcerts',
})

db.connect().then(async ()=>{
  const result=await db.query('select * from V where name = ?',["Batman"])
  console.log(result)
}).catch(err=>{
  console.error(err.message)
})

Query and Command query

Syntax:

db.query(query, parameters, limit, fetchplan)
db.command(query, parameters, limit, fetchplan)

Examples:

db.command('insert into V set name = ?', ["Batman"]).then(async ()=>{
  // named parameters, no limit
  const res=await db.query('select * from V where name = :name', {
    name: "Batman"
  })
  db.command('select * from V where name = ?', ["Batman"], 1).then(successHandler)
}).catch((err)=>console.error(err))

Response will be something like:

{
  "result": [
    {
      "@type": "d",
      "@rid": "#9:12",
      "@version": 1,
      "@class": "V",
      "name": "Batman"
    }
  ]
}

Methods

All methods return a Promise
See superagent for more information about the response and errors

Connection

db.connect() returns boolean db.disconnect() returns boolean

Rest commands:

db.get(command, queryParams) returns object
db.delete(command, queryParams) returns boolean
db.head(command, queryParams) returns boolean

db.post(command, queryParams, postBody) returns object
db.put(command, queryParams, postBody) returns object
db.patch(command, queryParams, postBody) returns object

Custom commands

db.query(query, [paramenters, limit, fetchplan]) returns object containing the result of the query
db.command(query, [paramenters, limit, fetchplan]) returns object|boolean containing the result of the command
db.insert(className, data) returns boolean shortcut as db.post('document', null, data) and set '@class' property of data
db.queryOne(query, paramenters, fetchplan) returns Object|null shortcut for setting limit 1 and return either first result or null

Helpers

db.getDateTimeFormatted([fromDate]) return string returns a datetime formatted date. fromDate is optional, if not set, it will use current datetime
db.getDateFormatted([fromDate]) same as above

Examples:
// create
db.post('document', null, { '@class': 'V', name: 'Gustavo Salome'}).then().catch()

// deleting, should return true
db.delete('document', '9:1').then().catch()

// create as command, should return the new record
db.command('insert into V set name = "Batman"').then().catch()

db.query('select * from V where name = "Batman"').then((res)=>{
  console.log(res)
}, 1 /*1 is the limit*/).catch(err=>{
  console.log(err.message)
})
Language
db.language('gremlin').query("g.V('@class', 'User')").then(successHandler2).catch(errorHandler2)

See OrientDB-REST API for a full list of rest commands

Events

const db = new OrientDB({
  user: 'root',
  password: 'root_passwd',
  host: 'http://localhost:2480',
  database: 'GratefulDeadConcerts',
})

db.connect()
db.disconnect()
// once connected
db.once('connected', (response)=>{
  console.log('yes! connected')
})
// on any error
db.on('error',(message, err)=>{
  console.log(message, err)
})
db.once('disconnected', (response)=>{
  console.log('bye!')
})

Example

const OrientDB=require ('orientdb-rest-api')
const db=new OrientDB({
  user: 'root',
  password: 'password',
  host: 'http://localhost:2480',
  database: 'GratefulDeadConcerts',
})
const config=require('./config/local')
const db=new OrientDB(config)
db.connect().then(async (res)=>{
  console.log(res) // true
  res=await db.command('insert into V set name = ?', ["Batman"])
  console.log(res) // Object containing the new record
  res=await db.query('select * from V where name = :name', {
    name: "Batman"
  })
  console.log(res) // Object containing the fetched record
  res=await db.command('select * from V where name = ?', ["Batman"], 1)
  console.log(res) // Same object containing the fetched record
  res=await db.delete('document', res.result[0]['@rid'])
  console.log(res) // true
  res=await db.disconnect()
})
db.on('connected',(res)=>{
  console.log('connected')
})
db.on('error',(message, err)=>{
  console.log(message)
  process.exit()
})
db.on('disconnected',(res)=>{
  console.log('disconnected')
})

Api

See OrientDB-REST API for more docs.

Erros

Listening for error events

db.on('error',(message, err)=>{
  console.log(message, err)
})
db.query('error query').catch((err)=>{
  console.log(err.message)
})

See SuperAgent Error Handling for more information

Config

{
  user: 'root',
  password: 'root_passwd',
  host: 'http://127.0.0.1:2480',
  database: 'GratefulDeadConcerts',
  language: 'sql',
  timeout: 1000*5,
}

Changelog

1.1.0

  • Changed from axios to superagent

1.0.0

  • First Release

Keywords

FAQs

Package last updated on 19 Dec 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc