I'm getting this when using createBelongsToAccessorFor.
step 1- > i'm calling "http://localhost:3000/dealers/1/user" endpoint. (getting response correctly with data).
step 2 -> then i'm calling again "http://localhost:3000/dealers/1/user". I'm getting that error.
step 3 -> after restarting loopback server that api works correct.
Only first time after restarting server it works correct.
Please help me to fix this.
Unhandled error in GET /dealers/1/user: 500 Error: The key repositories.UserRepository was not bound to any value.
at RequestContext.getBinding (/home/dilupa/Speralabs/sterling_Vehicle_project/backEnd/lb4/postgresql/sterling-aftercare-system-api/node_modules/@loopback/context/dist/context.js:493:15)
at RequestContext.getValueOrPromise (/home/dilupa/Speralabs/sterling_Vehicle_project/backEnd/lb4/postgresql/sterling-aftercare-system-api/node_modules/@loopback/context/dist/context.js:528:30)
at RequestContext.get (/home/dilupa/Speralabs/sterling_Vehicle_project/backEnd/lb4/postgresql/sterling-aftercare-system-api/node_modules/@loopback/context/dist/context.js:471:27)
at DefaultBelongsToRepository.getter [as getTargetRepository] (/home/dilupa/Speralabs/sterling_Vehicle_project/backEnd/lb4/postgresql/sterling-aftercare-system-api/node_modules/@loopback/context/dist/inject.js:171:20)
at DefaultBelongsToRepository.get (/home/dilupa/Speralabs/sterling_Vehicle_project/backEnd/lb4/postgresql/sterling-aftercare-system-api/node_modules/@loopback/repository/dist/relations/belongs-to/belongs-to.repository.js:21:39)
at DealerRepository.getTargetInstanceOfBelongsTo [as user] (/home/dilupa/Speralabs/sterling_Vehicle_project/backEnd/lb4/postgresql/sterling-aftercare-system-api/node_modules/@loopback/repository/dist/relations/belongs-to/belongs-to-accessor.js:26:32)
at
at process._tickCallback (internal/process/next_tick.js:188:7)
my files-->
--dealer.repository.ts--
import {
DefaultCrudRepository,
BelongsToAccessor,
repository,
} from '@loopback/repository';
import {Dealer, User} from '../models';
import {PostgresqlDBDataSource} from '../datasources';
import {inject, Getter} from '@loopback/core';
import {UserRepository} from './user.repository';
export class DealerRepository extends DefaultCrudRepository<
Dealer,
typeof Dealer.prototype.id
{
public readonly user: BelongsToAccessor;
constructor(
@inject('datasources.postgresqlDB') dataSource: PostgresqlDBDataSource,
@repository.getter(UserRepository)
userRepositoryGetter: Getter
) {
console.log('sdsdds*');
super(Dealer, dataSource);
this.user = this.createBelongsToAccessorFor('user', userRepositoryGetter);
}
}
--dealer.model.ts--
import {Entity, model, property, belongsTo} from '@loopback/repository';
import {User} from './user.model';
@model()
export class Dealer extends Entity {
@property({
type: 'number',
id: true,
})
id?: number;
@property({
type: 'string',
})
firstName?: string;
@property({
type: 'string',
})
lastName?: string;
@property({
type: 'string',
})
address?: string;
//relations
@belongsTo(() => User)
user: number;
constructor(data?: Partial
super(data);
}
}
--dealer.controller.ts--
@get('/dealers/{id}/user')
async getCustomer(
@param.path.number('id') dealerId: typeof Dealer.prototype.id,
): Promise
looks related to https://github.com/strongloop/loopback-next/issues/2495
Should be fixed in latest release by https://github.com/strongloop/loopback-next/pull/2513
@elv1s thank you.. "npm update" fixed my issue.
Closing as resolved. Thanks.
Most helpful comment
looks related to https://github.com/strongloop/loopback-next/issues/2495
Should be fixed in latest release by https://github.com/strongloop/loopback-next/pull/2513