/nest-influxdb

Primary LanguageTypeScriptMIT LicenseMIT

npm version downloads issues

Description

InfluxDB module for Nest based on the official InfluxDb package.

Installation

npm install nest-influxdb --save

or

yarn add nest-influxdb

Usage

Register module:

import { Module } from "@nestjs/common";
import { InfluxDbModule, InfluxModuleOptions } from "nest-influxdb";
import { UtilsModule } from "./utils/utils.module";
import { ConfigService } from "./utils/config/config.service";

@Module({
    imports: [
        InfluxDbModule.forRootAsync({
            imports: [UtilsModule],
            inject: [ConfigService],
            useFactory: async (
                config_servie: ConfigService
            ): Promise<InfluxModuleOptions> => {
                return {
                    host: config_servie.get("INFLUX_HOST")
                };
            }
        }),
        TrafficModule
    ],
    controllers: [AppController],
    providers: [AppService]
})
export class AppModule {}

Get access to InfluxDbService in some your service:

@Injectable()
export class TrafficService {
    constructor(private readonly influx_service: InfluxDbService) {}

    public async getLastDay(): Promise<ResponseDto> {
        const results = await this.influx_service.query(`
            select MEAN(*) from traffic WHERE time > now() - 1d GROUP BY time(10m);
        `);

        return results.map(pointToDto);
    }
}