I am developing an application using typescript, mean stack, inversify-express-utils and inversifyjs as my IOC container. I am receiving an error for my entries in the inversify.config.ts file for the entry that add a Model to the container. For example,
inversify.config.ts:
container.bind<Model<Document>>(TYPES.Document).to(User).whenTargetNamed("userSchema");
This seems to result in the following error: "Argument of type Model is not assignable to parameter of type 'new (...args: any[]) => Model'. Type 'IUserModel' is not assignable type 'Model'. Property 'findByid' is missing in type 'IUserModel'."
igroupmodel.ts:
export interface IUserModel extends IUser, Document
types.ts:
Document: Symbol("Model")
group.js(last line):
export let User = mongoose.model<IUserModel>("User", UserSchema);
What is the correct way to inject a mongoose model into the container? I have been looking for an example demonstrating how to work with inversifyjs and mongoose and have not found a solution.
Update: When I substitute to(User) with toConstantValue(User) I am no longer getting the error. However, my log file seems to display the following error in my log files:
"Error: No matching bindings found for serviceIdentifier: Model"
You can find an example of mongoose + inversify here . The example uses the onion architecture but you should be able to use a different architecture if you don't like it...
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.