Coder Social home page Coder Social logo

neobase-client-js's Introduction

NeoBase Client

Javascript client for neobase

install

npm i @neobase/client

Usage

First get your project name from NeoBase, if you don't have a project yet, register and create one, it's free!

note make sure to set your access config in NeoBase dashboard and read authentication docs below.

Actual Usage

import { getClient } from '@neobase/client'

const client = getClient('your-project-name', { baseurl: 'https://neobase.darkube.app/api' })

//create collection object
const Todos = client.Collection('todos')
const Animals = client.Collection('animals')

// *note* the apis is very close to [Mongoose](https://mongoosejs.com/)

//create a document
const { data, status } = await Todos.create({ name: 'update the docs', done: false })

//count all documents
await Todos.count()

//count with filters!
await Todos.count({ status: 'done' })

//fetch all documents
const { data, status } = await Todos.find()

//find options
await Todos
  //filter documents
  .find({ foo: 'bar' })
  //pagination
  .limit(85)
  .skip(65)
  //sorting
  .sort('createdAt')
  //select fields
  .projection({ name: 1 })
  // array of mongoose populate arguments
  .populate([{ model: 'users', path: 'createdBy' }])

// if you don't like chains
const res = await Todos.find(
  { foo: 'bar' },
  { _id: -1 },
  {
    sort: 'age',
    limit: 85,
    skip: 65
  }
)

//update
await Todos.updateOne({ _id: 1 }, { $set: { done: true } })

//delete all documents in a collection!
await Todos.deleteMany()

//delete finished tasks
await Todos.deleteMany({ done: true })

//delete single document
await Todos.deleteOne({ _id: 4 })

Authentication

NeoBase use JsonWebToken for authentication, after authentication(login/register) a token is returned, save the token and send the token with each request as x-auth-token header;

function getToken(){
    //fetch token
   return  localStorage.setItem('auth-token', token);
}

// pass the get token as option
const client = getClient('name',{..., getToken});

//authenticate
const { data, status } = await client.Auth.register({
  email: '[email protected]',
  password: 'super-secure'
})

// or login
const { data, status } = await client.Auth.login({
  email: '[email protected]',
  password: 'super-secure'
})

//get the token
const { token } = data;

//save your token
localstorage.setItem('auth-token',token);

// now every request will be authenticated
// check your session
const {data,status} = await client.Auth.me()

note to check exipration date you can use jwt libraries.

Documents

Please read NeoBase documents at Docs.

neobase-client-js's People

Contributors

asheghi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.