npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

neo4j-io

v1.0.4

Published

A Neo4j REST API wapper for io.js

Downloads

5

Readme

Neo4j API Wrapper

NPM version build status Test coverage

Yet another Neo4j REST API wrapper for io.js, which provides Promise api.

Usage

npm install neo4j-io --save

var neo4j = require('neo4j-io')([url])

API

Cypher

var cypher = 'MATCH (n:NODE) RETURN n LIMIT 1'
neo4j
  .query(cypher)
  .then()
  .catch()

// With params
var cypher = 'MATCH (n:NODE) WHERE n.name={name} RETURN n'
var params = { name: 'neo4j' }
neo4j.query(cypher, params)

Node

create(node)

Create a node with JSON data

neo4j.Node.create({ name: 'name' })

get(id)

Get node with specify id

neo4j.Node.get(1)

update(id, prop, [value])

When prop is a string, it will update the specify property, otherwise reset node with given json

// Update name
neo4j.Node.update(1, 'name', 'new name')

// Reset node
neo4j.Node.update(1, {age: 10})

delete(id)

Delete node

neo4j.Node.delete(1)

deleteProperties(id, [prop])

Delete one or all properties

neo4j.Node.deleteProperties(1, 'name')
neo4j.Node.deleteProperties(1)

Relationship

create(from, to, type, [props])

Create a relationship between two nodes with specify type

neo4j.Relationship.create(1, 2, 'LIKES')
neo4j.Relationship.create(1, 2, 'LIKES', {really: true})

get(id)

Get a relationship node

getProperties(id, [prop])

Get properties

update(id, prop, [value])

Update or reset properties

delete(id)

Delete a relationship

all(nodeId)

Get all relationships of the node

incoming(nodeId)

Get incoming relationships of the node

outgoing(nodeId)

Get outgoing relationships of the node

Label

craete(nodeId, label)

Add label to node

update(nodeId, labels)

Update labels of the node

neo4j.Label.update(1, 'NODE')
neo4j.Label.update(1, ['NODE', 'BOOK'])

get(nodeId)

Get labels of the node

delete(nodeId, label)

nodes(label)

Get all the nodes with label

all()

Get all the labels

Index

get(label)

Get indexes for a label

create(label, index)

Create a index for a label

neo4j.Index.create('label', 'index')

delete|drop(label, index)

Drop index

Batch

All the api above are available in batch operation, exec must be called when you want to send the requests

var batch = neo4j.batch()
// Create a node
var batchId = batch.Node.create({name: 'batch'})
// Add a label to node, use id or batch Id
batch.Label.create({batch: batchId}, 'NODE')
// Create a relationship
batch.Relationship.create({batch: batchId}, 2, 'LIKE')
// Call exec
batch.exec().then()

// Batch also support cypher

var c1 = 'START n=node(1) RETURN n'
var c2 = 'MATCH (n:NODE) WHERE n.name={name} RETURN n'

batch.query(c1)
batch.query(c2, {name: 'test'})
batch.exec().then()

LICENSE

MIT