0.0.4 • Published 8 months ago
nonet v0.0.4
NoNET
ASP .NET like library for Node.js with batteries included built on top of TypeScript, Express, Pino and Axios.
Installation
NoNet is available as an npm package.
$ npm i -s nonet
Usage Example
App Startup
/*
* file: /src/index.ts
*/
import { addController, addWebEssentials, createLogger, createServer, HttpClientFactory, register } from "nonet";
import { HomeController } from "./controllers/HomeController";
const server = createServer();
addWebEssentials(server);
// Register controllers
addController(server, HomeController);
const logger = createLogger();
// Register services to inject
register("logger", createLogger);
register("http.client.factory", HttpClientFactory);
server.listen(8080, () => logger.info("Server ready at http://localhost:8080"));
Defining a Controller
/*
* file: /src/controllers/HomeController.ts
*/
import { controller, inject, route, HttpMethod } from "nonet";
import { Request, Response } from "express";
import { Logger } from "pino";
@controller()
export class HomeController {
@inject("logger") // Injects the logger service
logger: Logger;
@route("/", HttpMethod.GET)
async index(req: Request, res: Response) {
this.logger.info("Request received!");
res.send("Hello World!");
}
}