我试图通过 sails.models。['CollectionName'] 访问模型组件,因为这些CollectionName将动态发送到此功能部件中。但它抛出了未定义的错误。
/sails12.rc3/myapps/api/services/UserService.js:86
var findQuery = sails.models['User'].find({id: inputID
^
/sails12.rc3/myapps/api/services/UserService.js:86
var findQuery = sails.config.models['User'].find({id: inputID
^
/sails12.rc3/myapps/api/services/UserService.js:86
var findQuery = sails.config.models['user'].find({id: inputID
^
TypeError: Cannot read property 'find' of undefined
at Object.UserService.formNewData
(/sails12.rc3/myapps/api/services/UserService.js:86:52)
at Object.bound [as formNewData] (/usr/local/lib/node_modules/sails/node_modules/lodash/dist/lodash.js:729:21)
at /sails12.rc3/myapps/api/services/UserInfoService.js:330:37
at fn (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:638:34)
at Immediate._onImmediate (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:554:34)
at processImmediate [as _immediateCallback] (timers.js:358:17)
请注意 sails.config 工作正常。
我正在使用SailsJS 12 rc 3.(我的意思是此时的最新版本)。
你能否就这方面的故障排除向我提出建议。
更新1: 嗨Jason, 在所有3个案例中,同样的错误。 我可以在技术上证实你是对的 http://sailsjs.org/documentation/reference/configuration/sails-config-models
但是,我不确定,如果
中有任何更新要求http://sailsjs.org/documentation/anatomy/my-app/config/models-js
目前在config / models.js中,
module.exports.models = {
connection: 'mongoDB',
migrate: 'alter'
}
请建议我是否需要更新此models.js文件中的任何配置值?
更新2
https://github.com/balderdashy/sails/blob/master/lib/hooks/orm/build-orm.js 我可以看到这些全局值的以下值
sails.config.models { connection: 'mongoDB', migrate: 'alter' }
sails.config.globals { adapters: true, models: true, services: true }
sails.config.globals.models true
因此我的工作没有用。请提出一些选择。
更新3
谢谢特拉维斯。 sails.models ['user']。在SailsJS版本中,find工作正常而没有任何变化。所以,让我再测试一下。
Ps:不确定,为什么我无法在下面直接添加评论(MAC / chrome浏览器)。所以,现在,编辑这个问题本身。
答案 0 :(得分:1)
我认为您无法正确访问它。
尝试:sails.config.models['User']
答案 1 :(得分:0)
尝试将模型名称转换为小写。
sails.models['CollectionName']
不起作用,因为在models对象中,集合名称都是小写的。
sails.model['collectionname']
应该有用。
我不知道为什么会这样,但我认为这将是在水线中建立ORM的一部分。
编辑:我认为这发生了here