This package has been deprecated

Author message:

The package is no longer maintained

server-modules
TypeScript icon, indicating that this package has built-in type declarations

0.1.8-dev.1 • Public • Published

server-modules

CircleCI

Features

This packages provides some easy-to-use utilities to setup a server with node.js.

  • Logging (stdout, file and mail)
  • MongoDB connector
  • Express wrapper
  • Websocket wrapper
  • API creator

How to use

Create a new ServerEnvironment

import { ServerEnvironment } from 'server-modules';
 
// check /modules/logger/_interface.d.ts for additional options
const Server = new ServerEnvironment(
    {
        ident: 'Example-Server',
        logger: {
            console: {
                level: 'silly'
            },
            file: {
                path: './logs',
                levels: ['info', 'warn', 'error']
            }
        }
    }
);

Logger

const logger = Server.logger.spawn('my-module');
logger.info(`Logger created`);

Express

Server
    .createExpress({
        port: 8080,
        init: app => {
            /* 
            * setup app
            * this will be applied after
            * cookieParser() / bodyParser.json() / compression() / morgan()
            * the server will send a 404 status message if no route was found
            */
        }
    });

API

import { ApiSegment } from 'server-modules';
 
export const MyAPISegment = new ApiSegment('api');
 
MyAPISegment
    .addRoute<{txt:string}>('echo/:txt')
    .get((req, res) => {
        const { params } = req;
        res.send(params.txt);
    });
 
Server
    .createExpress({
        port: 8081,
        init: [MyAPISegment]
    });
 
Server
    .createExpress({
        port: 8082,
        init: app => {
            MyAPISegment.registerOn(Server.logger, app);
        }
    });

Websocket

Server
    .createWebsocket(
        {
            port: 3001,
            connection: MyWebsocketConnection
        });
import { WebsocketConnection } from 'server-modules';
 
export class MyWebsocketConnection extends WebsocketConnection {
    init() {
        /* register event listeners */
        this._socket.on('ping', () => {
            this._socket.emit('pong');
        });
    }
}

MongoDB

const Client = Server.connectMongoDb({ auth });
Client.connect(db => {
    /* work on database or save reference to db */
});
interface MongoDbConnectionCfg {
    port?: number;          // default: 27017
    host?: string;          // default: localhost
    auth?: {                // default: undefined
        database?: string;  // default: admin
        user: string;
        password: string;
    };
    options?: MongoClientOptions;   // default: {}
}

Package Sidebar

Install

npm i server-modules

Weekly Downloads

1

Version

0.1.8-dev.1

License

MIT

Unpacked Size

75.7 kB

Total Files

59

Last publish

Collaborators

  • j-lamberts