Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sails.js一对多关联--TypeError:无法将null转换为object_Sails.js_Postgresql 9.3_Waterline - Fatal编程技术网

sails.js一对多关联--TypeError:无法将null转换为object

sails.js一对多关联--TypeError:无法将null转换为object,sails.js,postgresql-9.3,waterline,Sails.js,Postgresql 9.3,Waterline,我最近犯了一个奇怪的错误。我不记得以前有什么变化 error: Error (E_UNKNOWN) :: Encountered an unexpected error TypeError: Cannot convert null to object at hasOwnProperty (native) at utils.object.hasOwnProperty (/home/mandeep/freelance/hellos/node_modules/sails-postgre

我最近犯了一个奇怪的错误。我不记得以前有什么变化

error: Error (E_UNKNOWN) :: Encountered an unexpected error
TypeError: Cannot convert null to object
    at hasOwnProperty (native)
    at utils.object.hasOwnProperty (/home/mandeep/freelance/hellos/node_modules/sails-postgresql/node_modules/waterline-sequel/sequel/lib/utils.js:28:14)
    at /home/mandeep/freelance/hellos/node_modules/sails-postgresql/node_modules/waterline-sequel/sequel/where.js:259:11
    at Array.forEach (native)
    at WhereBuilder.complex (/home/mandeep/freelance/hellos/node_modules/sails-postgresql/node_modules/waterline-sequel/sequel/where.js:177:36)
    at complexWhere (/home/mandeep/freelance/hellos/node_modules/sails-postgresql/node_modules/waterline-sequel/sequel/index.js:244:16)
    at find (/home/mandeep/freelance/hellos/node_modules/sails-postgresql/node_modules/waterline-sequel/sequel/index.js:85:23)
    at Cursor.populateBuffers [as $populateBuffers] (/home/mandeep/freelance/hellos/node_modules/sails-postgresql/lib/adapter.js:539:31)
    at Cursor.run (/home/mandeep/freelance/hellos/node_modules/sails-postgresql/node_modules/waterline-cursor/cursor/cursor.js:45:8)
    at runJoins (/home/mandeep/freelance/hellos/node_modules/sails-postgresql/node_modules/waterline-cursor/index.js:51:10)

Details:  TypeError: Cannot convert null to object
当我从用户模型中删除一对多关联时,错误就消失了。以下是供参考的模型:

底层数据库是postgres

User.js

Phone.js

Email.js

我不认为您可以通过:id执行操作-id字段不会引用回用户模型。您应该为电子邮件和电话模型创建一个新属性,并将它们链接回用户模型

比如说,

User.js:

...
phone: {
    collection: "phone",
    via: "nonPrimaryPhoneOwner"
},
email: {
    collection: "email",
    via: "nonPrimaryEmailOwner"
}
...
Email.js:

...
nonPrimaryEmailOwner: {
    model: "user"
}
...
Phone.js:

...
nonPrimaryPhoneOwner: {
    model: "user"
}
...

我过去一直在使用这段代码,没有任何问题。今天注意到一件奇怪的事!它在我的工作系统上工作正常,但在我的家用电脑上不工作。我到家后会检查sails postgres适配器的版本
...
phone: {
    collection: "phone",
    via: "nonPrimaryPhoneOwner"
},
email: {
    collection: "email",
    via: "nonPrimaryEmailOwner"
}
...
...
nonPrimaryEmailOwner: {
    model: "user"
}
...
...
nonPrimaryPhoneOwner: {
    model: "user"
}
...