Research
Security News
Threat Actor Exposes Playbook for Exploiting npm to Build Blockchain-Powered Botnets
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
koa-decorators
Advanced tools
Use decorators as single-controller-level koa middlewares or define some meta data for the controller, for now only support koa 2.
npm install koa-decorators
Specified the router information for the controller.
It accepts two arguments:
String
, the HTTP method, required.String
, the path, required.Mount all routers specified by the @router
decorator.
Object
, an instance of Koa
.String
, path to the directory of routers.Supposed that all your router files are put in ./apis
:
// apis/user.js
'use strict'
const {router} = require('koa-decorators')
module.exports = class UserController {
@router({method: 'GET', path: '/user'})
async getUser (ctx) {
ctx.body = 'user'
}
}
And in outside app.js
:
// app.js
'use strict'
const Koa = require('koa')
const {route} = require('koa-decorators')
const app = new Koa()
route(app, `${__dirname}/apis`)
app.listen(3003)
Then koa-decorators
will help you to mount all routers in ./apis
:
> curl localhost:3003/user
> user
Add a koa middleware for the router to make sure some parameters should be in query-string or request body.
It accepts two arguments:
Array<String>
, all keys required in query-string, optional.Array<String>
, all keys required in request body, optional.// apis/user.js
'use strict'
const {router, required} = require('koa-decorators')
module.exports = class UserController {
@router({method: 'GET', path: '/user'})
@required({query: 'id'})
async getUserById (ctx) {
ctx.body = 'user'
}
}
> curl localhost:3003/user
> 412 Query: id required
> curl localhost:3003/user?id=1
> user
Convert an async function to koa middleware decorator.
This method accepts one argument:
Function
, the async function to be converted.'use strict'
const {convert} = require('koa-decorators')
async function someFun (ctx, next) {
await next()
}
const converted = convert(someFun)
module.exports = class {
@router({method: 'GET', path: '/convert'})
@converted
async convert (ctx) {
ctx.body = 'converted'
}
}
FAQs
Decorate koa
The npm package koa-decorators receives a total of 0 weekly downloads. As such, koa-decorators popularity was classified as not popular.
We found that koa-decorators demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
Security News
NVD’s backlog surpasses 20,000 CVEs as analysis slows and NIST announces new system updates to address ongoing delays.
Security News
Research
A malicious npm package disguised as a WhatsApp client is exploiting authentication flows with a remote kill switch to exfiltrate data and destroy files.