1.5.4 • Published 9 years ago

node-flask v1.5.4

Weekly downloads
4
License
MIT
Repository
github
Last release
9 years ago

Node Flask

Node implementation flask like server framework. With the introduction of function decorators and classes we are able to make a small and easy to implement routing system. This is build on koa2 for their support of es2016 functionality and because of its small foot print when compared to express. I am using koa@2 because all routes are handled though blueprint classes and passing a context to a function as a parameter and allowing this to still refer to the blueprint helps class logic. Even though we are using koa@2 you do not have to run you code though a compiler such as babel (though this step makes function decorators posible).

API

Server() => Server

Main server to run blueprint classes. Extends Koa Class from koa@2.

Optiontypedescription
portNumberHttp port to listen on
blueprintsObject|Array|String(optional) Blueprints or path to blueprint classes

Example

const { Server } = require("node-flask")
const MainRoutes = require("./MainRoutes")
const server = new Server({
  port: 5000,
  blueprints: [MainRoutes],
})
server.start()

Server#start() => Promise

Run server from configuration Example

const server = // ...from example above
server.start()
.then(() => console.log("Server online on port 5000"))
.catch(err => console.error(`An error occurred (such as port in use)`, err.stack))

#prefix(prefix: string, ...middleware: fn) => decorator

Class decorator for blueprint class level configuration.

#all(path: string, ...middleware: fn) => decorator

Handle all http requests on path.

#get(path: string, ...middleware: fn) => decorator

Handle all GET http requests on path.

#post(path: string, ...middleware: fn) => decorator

Handle all POST http requests on path.

#put(path: string, ...middleware: fn) => decorator

Handle all PUT http requests on path.

#patch(path: string, ...middleware: fn) => decorator

Handle all PATCH http requests on path.

#del(path: string, ...middleware: fn) => decorator

Handle all DELETE http requests on path.

Example (babel w/ transform-legacy-decorators)

const flask = require("node-flask")

@flask.prefix("/main", middlewarefunction)
class MainRoutes {

  @flask.get("/home")
  async home(ctx) {
    const data = await getData()
    ctx.body = data
  }
}

Example (node6)

const flask = require("node-flask")

class MainRoutes {
  constructor() {
    this.prefix = "/main"
    this.routes = flask.registerRoutes(this, {
      home: flask.get("/home"),
    })
  }

  *home(ctx) {
    const data = yield getData()
    ctx.body = data
  }
}

TODO:

  • Write more tests for Server
  • Add helpful middleware and more decorators upon need

Contributions:

Feedback, use cases and code is all appreciated. Simply make an issue or pull request on the github repo.

1.5.4

9 years ago

1.5.3

9 years ago

1.5.2

9 years ago

1.5.1

9 years ago

1.5.0

10 years ago

1.4.1

10 years ago

1.4.0

10 years ago

1.3.1

10 years ago

1.3.0

10 years ago

1.2.1

10 years ago

1.2.0

10 years ago

1.1.1

10 years ago

1.1.0

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago