jserver

Loosely coupled server components with multiprocess support and good test coverage

npm install jserver
2 downloads in the last week
10 downloads in the last month

jserver

Node.js based server consisting of loosely coupled components with low dependencies, multiprocess support and good test coverage.

JServer is Node.js based consisting of loosely coupled components with low dependencies, multiprocess support and good test coverage. This Node.js based server tries to provide useful server functionality for your application with minimal dependencies both within the library and to external components. All functionality has associated unit tests to provide robust platform to built on.

Guiding principles

  • Dependencies are avoided at all cost, nothing outside core Node.js modules is used in core
  • You pay in terms of performance only for exactly those features what you need
  • 100% test coverage to provide robust platform to built on

Features

  • Master/workers architecture for stability and to take advantage of multiple CPU cores
  • Auto-restart of dead workers
  • Basic routing with emphasis on performance and minimal memory allocations
  • No dependencies outside Node.js core modules
  • OO-style instantition which allows you to create multiple servers in single process
  • MongoDB connectivity
  • File serving support (mainly useful for .js files as you'd use Nginx for any data which is not subject to same-origin limitations)
  • DB based session support with drivers for Redis (preferred) and MongoDB

Components

  • FileCache - File serving suppport. No dependencies! (even not dependent on JServer)
  • Filter - Type/schema based input filtering support. No dependencies!
  • File util - File finding etc. mainly for deployments and scripting (sync)
  • JServer - Core HTTP(S) server supporting master/worker architecture out of the box. No dependencies!
  • MongoDBC - MongoDB connectivity. Uses mongodb-native driver (=the only dependency).
  • Redirect - Simple redirect support (URL+status code). No dependencies!
  • Session - Session handling with storage drivers for Redis and MongoDB. No dependencies!

About Components

  • Note that a goal in all components is to make them as isolated as possible
  • For example MongoDBC connectivity and File Cache can be used without JServer itself

Install

To run unit tests

  • Make you sure have MongoDB and Redis running since some tests use those
  • node tests/all.js
  • Open tests/index.html in browser
npm loves you