Comments (3)
Thanks for reporting this @KalleV, It seems sequelize relies on the actual db column type for the parsing. As I tried it with postgres and as long as the datatype in db is set to character varying
the json in raw format is what I get otherwise it's is stringified.
It's not respecting the JSON defined in the model definition.
As a solution for data type disparity puting this parsing logic into this extension to match the behaviour of different loopback-connectors sounds cumbersome but will what best I can do to match it.
from loopback-next.
Also when you say:
I tried adding a getter to all entity JSON properties...
Where did you add that in your LoopBack app?
from loopback-next.
I defined the custom getter using the "sequelizeOptions" hooks. Something like this:
sequelizeOptions: {
hooks: {
beforeDefine: (attributes, options) => {
// ...
Object.keys(attributes).forEach((key) => {
const attribute = attributes[key];
if (
typeof attribute !== 'string' &&
'type' in attribute &&
attribute.type === DataTypes.JSON
) {
Object.assign(attribute, {
get() {
const value = this.getDataValue(key);
if (typeof value === 'string') {
try {
return JSON.parse(value);
} catch (error) {
/* log error */
return null;
}
}
return value;
}
});
}
});
}
},
// ...
from loopback-next.
Related Issues (20)
- [@loopback/build] - lb-tsc: not found. Because NODE_ENV = production HOT 1
- Rest nested include
- How to integrate passport authentication without express web app?
- [@loopback/sequelize] Regression in query behavior when undefined values passed to "where" filter
- Error creating todo-list application HOT 1
- [@loopback/sequelize] Boolean values from Loopback "where" filter are not serialized correctly
- [@loopback/sequelize] Scope setting on Loopback Model is ignored by Sequelize extension
- @loopback/rest - v13.1.3 request validation fails
- [@loopback/sequelize] Test sandbox directory is included in the published NPM package
- [@loopback/sequelize] Typescript error when using the "required" property with Sequelize HOT 2
- Polymorphic relations broke SQL Transactions HOT 5
- Error when running `npm run tsdocs`
- @loopback/repository 6.1.4 broke hasManyThrough relations HOT 4
- Use FQIN in Dockerfile
- Security Scan "Vulnerability" CVE-2023-29827 HOT 3
- lb4 discover create invalid property in model file (DB2 IBMI) HOT 2
- Additional properties in JWT token not accessible HOT 3
- [@loopback/build] not copying non-TypeScript files with --copy-resources flag from v9.0.10
- Docs: `npm run build:site` command fails because of recent update by lerna v7
- getModelSchemaRef does not include the nested model definition HOT 2
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 loopback-next.