Open kapouer opened 9 years ago
I'm not sure of the rational behind this change.
null !== undefined
.
Since null
is a type in databases, and undefined
isn't, I'm not sure what the ramifications of this are or what may break unexpectedly. If a property is null in the DB, I would like to know that it is. If it is missing from the object entirely this means a different thing all together.
This has come up before. See here as well as a couple other pull requests.
I wanted to have only/omit query results be serialized without seeing all the columns i've omitted outputed with "null" value. That's the main reason, but as you already know, it could have side effects.
If you check the changes i had to make to the test suite, side effects are not that bad ! If a property is null in the db, and the property is queried, the ouput will be {'thatprop': null} as one expects, of course. The only thing that could go wrong is .find().only().each().save() I suppose validation is going to kick out, when applicable. But hey, if you do that, you get what you asked for.
Changed the title to better reflect the rationale.
That title is a lot better and I get what you're after now.
Basically this let us have for the same price JSON.stringify(john) : {"height": 4} instead of {"height": 4, "name": null}
Weirdly it wasn't easy to achieve. This requires https://github.com/dresende/node-sql-query/pull/37 for it to pass tests.
Mind that i tested only postgres (and sqlite ? i don't know) but kept in mind it should work everywhere.