blacktide
v1.0.0-beta.6
Published
Lightweight back-end framework for Micro-services and APIs with added security
Downloads
1
Maintainers
Readme
Blacktide
Blacktide is a lightweight back-end framework with optimization in security and based on Express.
Notes
* Beta version, not yet ready for production
* Works great stand alone, works better with the blacktide-cli tool
* For quick development
* REST
* No static content
* No sessions
Installation
$ npm i -S blacktide
Configuration
See blacktide-cli for more information about the cli tool to aid development in Blacktide.
How to run with pm2
$ NODE_ENV=production pm2 start services/ --name 'myapp'
Getting started (with blacktide-cli)
Lets create a very simple alerts API, first we create the folder for the project and enter it:
$ mkdir alerts && cd alerts
Creating the app, remember to select to use mongoose
$ blacktide generate app alerts
We are going to need a model for that
$ blacktide generate model alerts
After all that is done, dont forget to install everything, before this step is a very good time to install aditional dependencies!
$ npm i
We have all we need to get started editing some code:
'use strict';
const blacktide = require( 'blacktide' );
blacktide
.service( '', { // the / is optional
create: ( req, res, next ) =>
{
blacktide
.db
.models
.alerts
.create( {
type: 'info',
text: req.body.text
}, ( err, doc ) => {
if ( err )
{
return next( err );
}
res.json( doc );
} );
}
} );
With that done we can create alerts on our database!
Usage
Simple
const blacktide = require( 'blacktide' );
blacktide
.service( '/hello', { // the / is optional
get: ( req, res, next ) =>
{
'use strict';
res.json( { content: 'hello world' } );
}
} );
At root or /
const blacktide = require( 'blacktide' );
blacktide
.service( '', { // to attach to / just leave the service name empty
get: ( req, res, next ) =>
{
'use strict';
res.json( { content: 'hello world' } );
}
} );
You can also access Express via:
const blacktide = require( 'blacktide' );
blacktide
.app
.use( ( req, res, next ) => {
} );
Example of a full service:
const blacktide = require( 'blacktide' );
blacktide
.service( 'users', {
// Called before all routes.
before ( req, res, next ) {
'use strict';
req.passing = true;
next();
},
// /users/1
get ( req, res ) {
'use strict';
res.json( {
body: req.body,
params: req.params,
query: req.query
} );
},
// /users
find ( req, res ) {
'use strict';
res.json( {
body: req.body,
params: req.params,
query: req.query
} );
},
// /users
create ( req, res ) {
'use strict';
res.json( {
body: req.body,
params: req.params,
query: req.query
} );
},
// /users/1
put ( req, res ) {
'use strict';
res.json( {
body: req.body,
params: req.params,
query: req.query
} );
},
// /users/1
patch ( req, res ) {
'use strict';
res.json( {
body: req.body,
params: req.params,
query: req.query
} );
},
// /users/1
delete ( req, res ) {
'use strict';
res.json( {
body: req.body,
params: req.params,
query: req.query
} );
},
// Called after all routes.
after ( req, res, next ) {
'use strict';
console.log( req.passing );
next();
}
} );
Run some tests
npm test
License
MIT