1.0.0-beta.6 • Published 7 years ago

blacktide v1.0.0-beta.6

Weekly downloads
-
License
MIT
Repository
-
Last release
7 years ago

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