server-modules
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';
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 => {
}
});
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() {
this._socket.on('ping', () => {
this._socket.emit('pong');
});
}
}
MongoDB
const Client = Server.connectMongoDb({ auth });
Client.connect(db => {
});
interface MongoDbConnectionCfg {
port?: number;
host?: string;
auth?: {
database?: string;
user: string;
password: string;
};
options?: MongoClientOptions;
}