slothbear_http

An HTTP server framework for node.js built to handle http server creation and routing functionality.

Usage no npm install needed!

<script type="module">
  import slothbearHttp from 'https://cdn.skypack.dev/slothbear_http';
</script>

README

Slothbear HTTP

An HTTP server framework for node.js built to handle http server creation and routing functionality.

Contents

  • Getting Started
  • API
    • Server
    • Router
  • Dependencies
  • Authors
  • License

Getting Started

  • Install locally to a project by running npm install slothbear_http
  • Import the module into your project by using the following structure: var slothbear = require('slothbear_http');. The slothbear variable can be defined using any name you choose, but for the following examples we will use the name slothbear.
  • Here is a quick example on how you would get a server started on port 3000 with GET and POST routes:
const slothbear = require('slothbear_http');

slothbear.router.get('/', (request, response) => {
  response.write('Hello World');
  response.end();
});
slothbear.router.post('/slothbear', (request, response) => {
  response.write('Successfully posted to /slothbear');
  response.end();
});

slothbear.server(3000);

API

Server

slothbear.server(port)

To launch your server, use the slothbear.server method. This method takes the port you want to listen on as a variable, and launches your server when run. For example, slothbear.server(3000); would launch a server that listens for incoming requests on port 3000.

Router

slothbear.router

To set up the routing for your server, use the built in slothbear.router. The router is already internally linked to the slothbear.server method, so all you need to do is add your routes directly to the slothbear.router property. For example, a simple get request to the "/slothbear" route can be set up like so: slothbear.router.get('/slothbear', callback);. Further routes can also be added directly to the slothbear.router, or chained together:

slothbear.router.get('/', (request, response) => {
    some GET logic
  })
  .get('/sloth', (request, response) => {
    some other GET logic for /sloth route
  })
  .post('/bear', (request, response) => {
    some POST logic for the /bear route
  });

Routing using REST verbs

slothbear.router.get(path, callback(req, res))

Adds a GET route that handles requests with the passed-in callback. Returns the router to allow for method chaining. Example:

slothbear.router.get('/index', (req, res) => {
  res.write('Hello World');
  res.end();
});
slothbear.router.post(path, callback(req, res))

Adds a POST route that handles requests with the passed-in callback. Return the router to allow for method chaining. Example:

slothbear.router.post('/index', (req, res) => {
  req.on('data', (data) => {
    res.writeHead(200, { 'Content-Type': 'application/json' });
    res.write(data);
    res.end();
  });
});
slothbear.router.put(path, callback(req, res))

Adds a PUT route that handles requests with the passed-in callback. Return the router to allow for method chaining.

slothbear.router.patch(path, callback(req, res))

Adds a PATCH route that handles requests with the passed-in callback. Return the router to allow for method chaining.

slothbear.router.delete(path, callback(req, res))

Adds a DELETE route that handles requests with the passed-in callback. Return the router to allow for method chaining.

Dependencies

  • Testing done using Mocha and Chai with the Chai-http assertion library
  • Task management done using gulp
  • Routing functionality leans very heavily on a Router constructor function built by Tyler Morgan for the CodeFellows 401d7 advanced javascript class.

Authors

This module was built by:

License

  • This software was built under the MIT open-source license