Comments (5)
Hi @ElMatella,
You are trying to make an instance of the Model which may not be what you had in mind?
May I suggest keeping things separate - doing something like:
export class User extends Typegoose {
...
@prop({ required: true})
public firstName: string;
...
}
export const UserStore = new User().getModelForClass(User);
and then importing the User and/or Store?
import { User, UserStore } from './User';
let user:User = new User();
const store = new UserStore(user);
await store.validate();
user = await store.save();
But be aware, there is a snake in paradise ...
I will create a question myself about properties not having the writable property set in a minute.
Currently if you wish to work directly on the object properties you will have to make the properties writable in a hackish kind of way (not desirable):
export class User extends Typegoose {
...
@prop(<any>{required:true, writable: true})
public x: string;
...
}
export const UserStore = new User().getModelForClass(User);
let user:User = new User();
user.x = "test";
let store = new UserStore(user);
store.save();
Not making the property writable will produce a TypeError like:
TypeError: Cannot assign to read only property 'x' of object '#<User>'
Please note I am not part of the typegoose team and the above approach is not recommended in the long run, but I hope to convince the creators of the library to add the writable flag within the typegoose code :-) I have a local typegoose version where I have made this change. If you need it - then we are two :-) Good luck with your project!
Kind Regards
Lasse
from typegoose.
Hi @ElMatella,
I have created a PR on the writable issue described in my previous post.
KR
Lasse
from typegoose.
Thanks a lot for your response, it totally makes sense that way. It feels more like a repository kind of thing implementation. It would be great to have that documented if your PR is being merged.
from typegoose.
Hi, I've reviewed the PR. There needs to be some adjustments to make it fully featured. I've described the details at the PR's page.
Akos
from typegoose.
@Ben305 i think this can be closed
from typegoose.
Related Issues (20)
- Please use the new Repository to open new issues HOT 4
- Pre hook supplied function error HOT 56
- TypeError: Class constructor Typegoose cannot be invoked without 'new' HOT 1
- [Request] Setting Collection Name and other Schema options via annotation and reflections
- [Question] Import ObjectId from Typegoose? HOT 4
- Please archive this repo
- Is there any way to achieve schema inheritance with typegoose? HOT 2
- [Question] Type of User.x property is not a y HOT 1
- Is it possible to use getModelForClass with generics? HOT 1
- [Question] HOT 1
- my populate field cant be queried out HOT 3
- [Question] HOT 1
- [Question] Problems reusing the same schema for both collection and subdocument HOT 1
- [Question] Can we add custom error messages when @prop options fail? HOT 2
- [Question] Are transactions supported for deleteMany? HOT 1
- [Question] Possible to have Query type support? HOT 1
- bi-directional virtuals population issue HOT 1
- Cannot use same model on two connections. HOT 2
- [Question] Is there a `required if` feature on model classes? HOT 2
- Both updatedBy and CreatedBy are getting updated after update operation on model object HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from typegoose.