Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
RedisOmModule
✓ import { RedisOmModule } from 'nestjs-redis-om'
✗ const RedisOmModule = require('nestjs-redis-om')
ESM-only; CommonJS require may work but not recommended.
InjectRepository
✓ import { InjectRepository } from 'nestjs-redis-om'
✗ import { InjectRepository } from '@nestjs/typeorm'
Must be from nestjs-redis-om, not other ORM modules.
Entity, Schema, Field
✓ import { Entity, Schema, Field } from 'nestjs-redis-om'
✗ import { Entity, Schema, Field } from 'redis-om'
Re-exported from nestjs-redis-om; importing from redis-om may miss NestJS integration.
RedisOmModuleOptions
✓ import { RedisOmModuleOptions } from 'nestjs-redis-om'
✗ import { RedisOmModuleOptions } from '@nestjs/common'
Type for module configuration options.
Repository
✓ import { Repository } from 'redis-om'
✗ import { Repository } from 'nestjs-redis-om'
Repository is from redis-om, not re-exported by nestjs-redis-om.
Complete setup: entity definition, NestJS module registration, and service usage with dependency injection.
// Install dependencies:
// npm i @nestjs/common @nestjs/core redis redis-om nestjs-redis-om reflect-metadata
// 1. Define an entity (user.entity.ts)
import { Field, Schema, Entity } from 'nestjs-redis-om';
export interface UserEntity extends Entity {}
@Schema('user')
export class UserEntity {
@Field({ type: 'string' })
name: string;
@Field({ type: 'number' })
age: number;
}
// 2. Create a module (user.module.ts)
import { Module } from '@nestjs/common';
import { RedisOmModule } from 'nestjs-redis-om';
import { UserEntity } from './user.entity';
import { UserService } from './user.service';
@Module({
imports: [RedisOmModule.forFeature([UserEntity])],
providers: [UserService],
exports: [UserService]
})
export class UserModule {}
// 3. Root module (app.module.ts)
import { Module } from '@nestjs/common';
import { RedisOmModule } from 'nestjs-redis-om';
import { UserModule } from './user/user.module';
@Module({
imports: [
RedisOmModule.forRoot({ url: 'redis://localhost:6379' }),
UserModule
]
})
export class AppModule {}
// 4. Use in service (user.service.ts)
import { Injectable } from '@nestjs/common';
import { InjectRepository } from 'nestjs-redis-om';
import { Repository } from 'redis-om';
import { UserEntity } from './user.entity';
@Injectable()
export class UserService {
constructor(
@InjectRepository(UserEntity)
private readonly repository: Repository
) {}
async create(data: Partial<UserEntity>) {
return this.repository.save(data);
}
async findAll() {
return this.repository.search().returnAll();
}
}
Errors
Common errors & fixes
Cannot find module 'nestjs-redis-om' or its corresponding type declarations.
Package not installed or TypeScript cannot resolve types.
fixRun 'npm install nestjs-redis-om' and ensure tsconfig.json includes 'node_modules/@types' or has 'moduleResolution': 'node'.
No repository injected; 'this.repository' is undefined.
Module not configured properly; missing forFeature or forRoot.
fixEnsure UserModule imports RedisOmModule.forFeature([UserEntity]) and AppModule imports RedisOmModule.forRoot().
Schema decorator error: 'UserEntity' is not a valid Redis OM schema.
Missing @Schema('entityName') decorator or entity not extending Entity interface.
fixAdd @Schema decorator with a name and extend the Entity interface.
Redis connection refused at redis://localhost:6379
Redis server not running or URL is incorrect.
fixStart Redis server or provide correct URL with authentication if needed.
Audit
Dependencies
redis-omrequiredCore Redis OM library for entity mapping and querying
redisoptionalRedis client driver
reflect-metadatarequiredRequired for decorators to work