Closed dottodot closed 9 years ago
Try updating to the latest release.
Otherwise, check the integrity of your associations.
This hasn't cropped up in tests, so I may need a little more information.
Same issue occurs in this release. It is something to do with an association as it's only happening on models where the associated collection is empty.
Sorry but what do you mean by check the integrity of your associations
Can you repost the error log with the latest release.
/Users/marcus/hosts/dbapi/api/blueprints/helpers/actionUtil.js:122
if (record[AssociatedModel.primaryKey] != null) {
^
TypeError: Cannot read property 'id' of null
at /Users/marcus/hosts/dbapi/api/blueprints/helpers/actionUtil.js:122:23
at Function.forEach (/Users/marcus/hosts/dbapi/node_modules/lodash/dist/lodash.js:3297:15)
at Object.module.exports.subscribeDeep (/Users/marcus/hosts/dbapi/api/blueprints/helpers/actionUtil.js:113:16)
at /Users/marcus/hosts/dbapi/api/blueprints/findone.js:21:20
at bound (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/lodash/dist/lodash.js:957:21)
at applyInOriginalCtx (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/lib/waterline/utils/normalize.js:416:80)
at wrappedCallback (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/lib/waterline/utils/normalize.js:315:18)
at _normalizeCallback.callback.success (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/node_modules/node-switchback/lib/normalize.js:33:31)
at _switch (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/node_modules/node-switchback/lib/factory.js:35:28)
at returnResults (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/basic.js:163:9)
at /Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/basic.js:74:16
at /Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/operations.js:77:45
at bound (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/lodash/dist/lodash.js:957:21)
at applyInOriginalCtx (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/lib/waterline/utils/normalize.js:416:80)
at wrappedCallback (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/lib/waterline/utils/normalize.js:315:18)
at _normalizeCallback.callback.success (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/node_modules/node-switchback/lib/normalize.js:33:31)
This is happening in a loop over your associated collection, only conclusion is that there is a rogue null element lurking about in there somewhere. I gotta dash, but should be a relatively quick fix tonight.
The null element is probably stemming from the waterline adapters. What database are you using?
I'm using mongo
Just added a conditional for associated collections - try the latest release. Let me know if there are any other problems.
OK so I now get a slightly different error. So the model I'm trying to get has no comments and this seems to be causing the error, whereas model that do have comments don't throw the error. Let me know if you want any of my code to assist working this out.
/Users/marcus/hosts/dbapi/api/blueprints/helpers/actionUtil.js:117
if (assoc.type === 'collection' && record[assoc.alias]) {
^
TypeError: Cannot read property 'comments' of null
at /Users/marcus/hosts/dbapi/api/blueprints/helpers/actionUtil.js:117:50
at Function.forEach (/Users/marcus/hosts/dbapi/node_modules/lodash/dist/lodash.js:3297:15)
at Object.module.exports.subscribeDeep (/Users/marcus/hosts/dbapi/api/blueprints/helpers/actionUtil.js:113:16)
at /Users/marcus/hosts/dbapi/api/blueprints/findone.js:21:20
at bound (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/lodash/dist/lodash.js:957:21)
at applyInOriginalCtx (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/lib/waterline/utils/normalize.js:416:80)
at wrappedCallback (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/lib/waterline/utils/normalize.js:315:18)
at _normalizeCallback.callback.success (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/node_modules/node-switchback/lib/normalize.js:33:31)
at _switch (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/node_modules/node-switchback/lib/factory.js:35:28)
at returnResults (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/basic.js:163:9)
at /Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/basic.js:74:16
at /Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/operations.js:77:45
at bound (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/lodash/dist/lodash.js:957:21)
at applyInOriginalCtx (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/lib/waterline/utils/normalize.js:416:80)
at wrappedCallback (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/lib/waterline/utils/normalize.js:315:18)
at _normalizeCallback.callback.success (/Users/marcus/hosts/dbapi/node_modules/sails/node_modules/waterline/node_modules/node-switchback/lib/normalize.js:33:31)
As mentioned, I suspect this is stemming from the database layer, so it would be difficult to reproduce the error on my end.
Have you tried updating your sails-mongo adapter?
It may be the case that waterline is populating with a null
when the id referenced cannot be found.
I have just pushed again. Try the latest release (after updating your adapter) and let me know if you have any luck.
It's ok I've found the issue, they was an association (not actually comments) that had somehow got a null value stored in it. The error was making me look in the wrong place.
I'm get the following error when fetch a single model and not really sure what would be causing it, and it's not happening on every model in the collection.