cervo

0.0.6 • Public • Published

Cervo

Easy-to-use nodejs server. It is abstracting express plumbing and offers basic but sufficient authentication features based on token. It is intended to be used by IOT. You can easily add custom endpoints, public or secured ones.

Code and examples uses ES6 syntaxes.

NPM Version NPM Downloads Build

Installation

Requires nodejs.

npm install cervo

How using it ?

const Cervo = require('cervo');
let cervo = new Cervo();
cervo.run();

Starting on a specific PORT

let cervo = new Cervo({
  port: 3000
});
cervo.run();

Using authentication

It is based on token. Credentials (users/passwords) are stored in a database. The workflow is the following :

  1. Call signin/signup endpoint with user and password
  2. The endpoint returns a Token
  3. Call secured endpoints by passing the token in the request header with the key x-access-token

Store credentials in mongodb

let cervo = new Cervo({
    database : 'mongodb://[user]:[password]@[mongo_provider]:[mongo_port]/[db_id]'
 
});
cervo.run();

Core API

Endpoint Description Example
[POST] /public/authenticate create a user/connexion signup?name=[user_name]&password=[password]
[GET] /secured/ root of secured endpoints
[GET] /secured/users list of users
[POST] /secured/signin signin requires name and password in the request header

Custom endpoints

You can define your own endpoints :

let cervo = new Cervo({});
cervo.get('/books', function(){
  res.send(...); // Add the code that get the list of books
});
cervo.run();
 

By default custom endpoints are public and are hosted under /public.

Secured endpoints

You can define secured endpoints only available for authentified clients :

let cervo = new Cervo({});
cervo.sget('/books', function(){ // pget for private get
  res.send(...); // Add the code that get the list of books
});
cervo.run();

Todo

  • Embedded sqlite for storing users
  • Encapsulate mongoose API to be able to add entities
  • Auto-sugested token for marketing usages

Readme

Keywords

none

Package Sidebar

Install

npm i cervo

Weekly Downloads

0

Version

0.0.6

License

ISC

Last publish

Collaborators

  • bennekrouf