Giter Club home page Giter Club logo

hero's Introduction

Hero

A light web server framework base Koa.

Install

npm install @heroor/hero
yarn add @heroor/hero
pnpm install @heroor/hero

Usage

Create

// index.ts
import Hero from '@heroor/hero'

const server = new Hero()
server.start(3000, console.log.bind(0, 'Server is running: http://localhost:3000/'))

Convention Routing

Create router files in router/ folder, use decorators and export a Class:

└── src
  ├── index.ts
  └── router
    └── user.ts  <--- here!
// router/user.ts
import { get, Context } from '@heroor/hero'

export default class User {
  @get('/get/user')
  public async getUser(ctx: Context) {
    ctx.body = {
      ok: 1,
      data: { name: 'hero' },
    }
  }
}

APIs

Hero.start()

Create a web server by port.

Hero.start(port, callback?)

const server = new Hero()
server.start(3000, console.log.bind(null, 'Running in 3000...'))

Hero.static()

Create a static server by path.

Hero.static(path, options?)

const server = new Hero()
server.static(resolve(__dirname, './public'))

Hero.use()

Use middleware of koa.

Hero.use(Koa.Middleware)

const server = new Hero()
server.use(bodyParser())

Router decorators

  • @get(path): Create a GET router.
  • @post(path): Create a POST router.
  • @del(path): Create a DELETE router.
  • @put(path): Create a PUT router.
  • @head(path): Create a HEAD router.
  • @options(path): Create a OPTIONS router.
  • @patch(path): Create a PATCH router.
// router/user.ts
import { get, post, Context } from '@heroor/hero'

export default class User {
  @get('/get/user')
  public async getUser(ctx: Context) {
    // ...
  }
  @post('/create/user')
  public async createUser(ctx: Context) {
    // ...
  }
}

License

MIT

hero's People

Contributors

heroor avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.