Skip to content

The fastest Node framework on this 🌎 πŸš€ πŸš€ πŸš€

License

Notifications You must be signed in to change notification settings

borislemke/microdose

Repository files navigation

microdose

A feather-light JavaScript API framework for Node, written in TypeScript, built for micro-services. This is the fastest Node.js framework on this planet. See the benchmark results here

codebeat badge npm version

Documentation

Documentation can be found on here.

Hello World

src/server.ts

import {
  uApp,
  uMethods,
  uRequest,
  uResponse,
  uRouter
} from 'microdose'

@uRouter()
class App {

  @uMethods.get()
  helloWorld (req: uRequest, res: uResponse) {
    res.send('Hello world!')
  }
}

const config = {
  port: 3000
}

uApp.bootstrap(App, config)
.then(() => console.log('\nListening on port:', config.port))

Features

  • Leverages TypeScript decorators for a concise, intuitive application design
  • Can be used with standard express.js plugins

Installation

$ npm install microdose

Playground

Clone the repo from https://github.com/borislemke/microdose.

Install dependencies

$ npm install

Run the example

$ npm start

Visit http://localhost:3000 to see Hello World.

Future

  • Replace path-to-regexp with simpler custom alternative
  • Support URL queries (easy)

Issues

Wildcard does not work on root router:

@uRouter({
  children: [UsersRoute],
  middleware: [
    bodyParser.json()
  ]
})
export class App {

  @uMethod.get()
  helloWorld (req: uRequest, res: uResponse) {
    res.send('Hello world!')
  }

  @uMethod.get('/*')
  notFound (req: uRequest, res: uResponse) {
    res.send('Any are you okay?')
  }
}

Visiting host:port/ will always return the /* handler first.

About

The fastest Node framework on this 🌎 πŸš€ πŸš€ πŸš€

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published