egg-plugin-context
Version:
An egg middleware for adding contexts
138 lines (96 loc) • 3.08 kB
Markdown
<div style="text-align: center;" align="center">
An egg plugin for handle context
[![NPM version][npm-image]][npm-url]
[![Codacy Badge][codacy-image]][codacy-url]
[![Known Vulnerabilities][snyk-image]][snyk-url]
[![npm download][download-image]][download-url]
[![License][license-image]][license-url]
[![Sonar][sonar-image]][sonar-url]
</div>
```bash
$ pnpm install egg-plugin-context
$ npm install egg-plugin-context --save
$ yarn add egg-plugin-context
```
Enable context plugin
```js
// {app_root}/config/plugin.js
exports.withContext = {
enable: true,
package: 'egg-plugin-context'
}
```
```js
// {app_root}/router.js
module.exports = app => {
const { router, controller, middleware } = app
router.post('/api/test', middleware.withContext({ token: 100 }), controller.test)
}
// ctx.context.token === 100
```
```js
// {app_root}/router.js
module.exports = app => {
const { router, controller, middleware } = app
router.post(
'/api/test',
middleware.withContext(ctx => ({ test: 100 })),
controller.test
)
}
// ctx.context.test === 100
```
```js
// {app_root}/router.js
module.exports = app => {
const { router, controller, middleware } = app
router.post(
'/api/test',
middleware.withContext(async ctx => Promise.resolve({ test: 100 })),
controller.test
)
}
// ctx.context.test === 100
```
The contextName determines where to get the Context, like: `ctx.context`
```js
// {app_root}/router.js
module.exports = app => {
const { router, controller, middleware } = app
router.post(
'/api/test',
middleware.withContext({ token: 100 }, { contextName: 'contextData' }),
controller.test
)
}
// ctx.contextData.token === 100
```
[](./CHANGELOG.md)
Please open an issue [here](https://github.com/saqqdy/egg-plugin-context/issues).
[](LICENSE)
[]: https://img.shields.io/npm/v/egg-plugin-context.svg?style=flat-square
[]: https://npmjs.org/package/egg-plugin-context
[]: https://app.codacy.com/project/badge/Grade/f70d4880e4ad4f40aa970eb9ee9d0696
[]: https://www.codacy.com/gh/saqqdy/egg-plugin-context/dashboard?utm_source=github.com&utm_medium=referral&utm_content=saqqdy/egg-plugin-context&utm_campaign=Badge_Grade
[]: https://snyk.io/test/npm/egg-plugin-context/badge.svg?style=flat-square
[]: https://snyk.io/test/npm/egg-plugin-context
[]: https://img.shields.io/npm/dm/egg-plugin-context.svg?style=flat-square
[]: https://npmjs.org/package/egg-plugin-context
[]: https://img.shields.io/badge/License-MIT-yellow.svg
[]: LICENSE
[]: https://sonarcloud.io/api/project_badges/quality_gate?project=saqqdy_egg-plugin-context
[]: https://sonarcloud.io/dashboard?id=saqqdy_egg-plugin-context