@nestcloud/gateway
v0.3.17
Published
gateway module for nestcloud
Downloads
54
Readme
NestCloud - Gateway
Description
The gateway module for nestcloud.
Installation
$ npm install --save @nestcloud/gatewayNotification
You should not use body parser middleware when use this module or the post request will hang.
Quick Start
Register Module
import { Module } from '@nestjs/common';
import { NEST_BOOT } from '@nestcloud/common';
import { GatewayModule } from "@nestcloud/gateway";
@Module({
imports: [
GatewayModule.register({dependencies: [NEST_BOOT]}),
]
})
export class AppModule {
}Configurations
gateway:
routes:
- id: user
uri: lb://nestcloud-user-service
- id: pay
uri: https://example.com/payUsage
import { All, Controller, Param, Req, Res } from "@nestjs/common";
import { Request, Response } from 'express';
import { Gateway, InjectGateway } from "@nestcloud/gateway";
@Controller('/gateway/:service')
export class GatewayController {
constructor(
@InjectGateway() private readonly gateway: Gateway,
) {
}
@All()
do(@Req() req: Request, @Res() res: Response, @Param('service') id) {
this.gateway.forward(req, res, id);
}
private updatRoutes() {
const routes = [{id: 'example', uri: 'lb://example-service'}];
this.gateway.updateRoutes(routes);
}
}API
class GatewayModule
static register(options: IGatewayOptions = {}, proxy?: IProxyOptions): DynamicModule
Register gateway module.
| field | type | description | | :--- | :--- | :--- | | options.dependencies | string[] | NEST_BOOT or NEST_CONSUL_CONFIG | | options.routes | IRoute[] | routes of gateway | | proxy | IProxyOptions | please see http-proxy doc for detail |
class Gateway
updateRoutes(routes: IRoute[], sync: boolean = true): void
Update gateway routes.
TODO
filter support
Stay in touch
- Author - NestCloud
License
NestCloud is MIT licensed.
