Gathering detailed insights and metrics for neura-express-app
Gathering detailed insights and metrics for neura-express-app
Basic Express application starter with some common utilities used by almost all express applications.
npm install neura-express-app
Typescript
Module System
Min. Node Version
Node Version
NPM Version
TypeScript (96.29%)
JavaScript (3.71%)
Verify real, reachable, and deliverable emails with instant MX records, SMTP checks, and disposable email detection.
Total Downloads
2,512
Last Day
2
Last Week
15
Last Month
52
Last Year
401
MIT License
1 Stars
40 Commits
1 Watchers
1 Branches
1 Contributors
Updated on Oct 26, 2022
Latest Version
1.3.5
Package Id
neura-express-app@1.3.5
Unpacked Size
38.07 kB
Size
8.89 kB
File Count
25
NPM Version
8.19.4
Node Version
16.20.1
Published on
Jul 02, 2023
Cumulative downloads
Total Downloads
Last Day
-80%
2
Compared to previous day
Last Week
0%
15
Compared to previous week
Last Month
48.6%
52
Compared to previous month
Last Year
-37.8%
401
Compared to previous year
21
Basic Express application starter with some common utilities.
api.controller.ts
import {NeuraController} from "neura-express-app"
import express, {Request, Response} from "express"
export class ApiController extends NeuraController {
public getRouterPrefix(): string | undefined {
return "/api"
}
public getRouter(): express.Router {
const router = express.Router()
router.get("/", [this.index.bind(this)])
return router
}
protected index(req: Request, res: Response) {
const someValue = this.container.get<string>("some_value")
this.logger.info(`Some value: ${someValue}`)
res.send("Hello world")
}
}
index.ts
import dotenv from "dotenv"
// Load env variables
dotenv.config()
// Import everything we need from NeuraApp module
import cors from "cors"
import helmet from "helmet"
import bodyParser from "body-parser"
import {
NeuraApp,
getAppConfig,
NeuraContainer,
INeuraContainer,
BunyanLogger,
getLoggerConfig,
NeuraErrorHandler,
NeuraAppError,
} from "neura-express-app"
import {ApiController} from "./controllers/api.controller"
// import modules
// Get singleton instance of Container
const container = NeuraContainer.instance()
// Instantiate logger and error handler
const logger = new BunyanLogger(getLoggerConfig())
const errorHandler = new NeuraErrorHandler(logger)
// Register logger and error handler in our container
container.set("logger", logger)
container.set("error_handler", errorHandler)
container.set("some_value", 123)
// Bootstrapping application
const bootstrap = async (container: INeuraContainer): Promise<void> => {
// Instantiate our application
const app = new NeuraApp(getAppConfig(), container)
// Set callback upon error handler to gracefully close Express application either on
// process signals or untrusted errors
errorHandler.onClose(async () => {
await app.close()
})
// Register global middlewares
app.addMiddleware(cors())
app.addMiddleware(helmet())
app.addMiddleware(bodyParser.json())
app.addMiddleware(bodyParser.urlencoded({extended: false}))
// Register application controllers here
// Controller have to extend NeuraController class
app.addController(new ApiController(container))
// Start application
await app.listen()
}
bootstrap(NeuraContainer.instance())
.then(() => {
logger.info("[Application]: Started")
})
.catch(err => {
errorHandler.handleError(new NeuraAppError("bootstrapping-error", err?.message, false, err))
})
export default bootstrap
No vulnerabilities found.
No security vulnerabilities found.