国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

koa-decorate

goji / 2216人閱讀

koa-decorate




Provides decorators for router middleware of koa.
Install

Config
Koa-decorate is based on the decorator provided by es7, 
but nodejs does not support the decorator temporarily.
so we need to use typescript to develop our application,
we can run our typescript directly through ts-node without offline compiling.
npm install --save-dev ts-node nodemon

nodemon.json

{
  "restartable": "rs",
  "ignore": [
    ".git",
    "node_modules"
  ],
  "verbose": true,
  "execMap": {
    "ts": "ts-node"
  },
  "watch": [
    "controller",
    "app.ts"
  ],
  "ext": "ts"
}
API Reference

koa-decorate

Decorator ?

[new Decorator([opts])](#module_koa-decorate--Decorator_new)

.routes ? function

decorator

http-method ? @Get|@Post|@Put|@Delete|@All

path ? @Path

parameter ? @Param|@Query|@Body|@Ctx|@Next

hook ? @Before|@After

Controller

Decorator

Kind: Exported class

new Decorator([opts])

Create a new decorated router.

Param Type Description
[opts] Object
[opts.router] Object koa-router instance
[opts.controllers] Object route controller classes

Decorator.routes ? function

Returns router middleware which dispatches a route matching the request.

Kind: instance property of Decorator

Example
Basic usage:

// app.ts
import Koa from "koa";
import Router from "koa-router";
import Decorator from "koa-decorate";

import Controller from "./controller"; // Route controller classes

const routes = new Decorator({
  router: new Router(),
  controllers: Controller
}).routes();

app.use(routes);

http-method ? @Get|@Post|@Put|@Delete|@All

Create @Verb methods to match against HTTP methods, where Verb is one of the HTTP verbs
such as @Get or @Post etc.

Additionaly, @All can be used to match against all methods.

Example

// CatController.ts
import { Path, Get, Post } from "koa-decorate";

@Path("/api/cat")
class CatController {

  @Get
  @Path("/info")
  getCatInfo () {
    return {
      id: 1,
      name: "Lina Weiss",
      type: "Norwegian Forest Cat"
    }
  }

  @Post
  @Path("/info/")
  CreateCat () {
    return {
      status: 200,
      data: {
        id: 2
      },
      message: "Created successfully..."
    }
  }

}

export { CatController };

path ? @Path

Match URL patterns to callback functions or controller actions using @Path,
when authFunc returns true, controller can execute logical actions, otherwise access denied.

Param Type Description
path String
[authFunc] Function => Boolean route callback

Example

// CatController.ts
import { Path, Get } from "koa-decorate";

@Path("/api/cat")
class CatController {

  @Get
  @Path("/info/:id", (ctx) => Number(ctx.params.id) === 1)
  getCatInfo () {
    return {
      id: 1,
      name: "Lina Weiss",
      type: "Norwegian Forest Cat"
    }
  }
}

export { CatController };

parameter ? @Param|@Query|@Body|@Ctx|@Next

Create @Parameter decorators, where Parameter is one of the parameter-names such
as @Param, @Query, @Body etc.

Param Type Description
name String

Example

// CatController.ts
import { Path, Get, Post, Param, Query, Body, Ctx } from "koa-decorate";

@Path("/api/cat")
class CatController {

  @Get
  @Path("/info/:type")
  getCatInfo (
      @Param("type") type: string,
      @Query("info") info: string) {
    return { type, info }
  }

  @Post
  @Path("/info/:type")
  CreateCat (
      @Param("type") type: string,
      @Body("requestBody") requestBody: any) {
    return {
      status: 200,
      data: Object.assign(requestBody, { type }),
      message: "Created successfully..."
    }
  }

}

export { CatController };

hook ? @Before|@After

When the routing match is correct, the hookFunc is used to deal with
the transactions @Before and @After processing.

Param Type Description
[hookFunc] Function callback hook

Example

// CatController.ts
import { Path, Get, Param, Query, Before, After } from "koa-decorate";

@Path("/api/cat")
class CatController {

  @Get
  @Path("/info/:type")
  @Before((ctx, next) => {
    // ...
  })
  @After((ctx, next) => {
    // ...
  })
  getCatInfo (
      @Param("type") type: string,
      @Query("info") info: string) {
    return { type, info }
  }

}

export { CatController };

Controller

Kind: The dictionary of route controller classes

Example

// Controller/index.ts
import { CatController } from "./cat";

export default {
  Cat: CatController
};
Licences

MIT

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/98317.html

相關文章

發表評論

0條評論

goji

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<