Skip to content

VLZH/nest-influxdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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);
    }
}