sails.models。['CollectionName']在最新的Sails版本中不起作用

时间:2015-08-09 22:07:00

标签: sails.js sails-mongo

我试图通过 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浏览器)。所以,现在,编辑这个问题本身。

2 个答案:

答案 0 :(得分:1)

我认为您无法正确访问它。

尝试:sails.config.models['User']

答案 1 :(得分:0)

尝试将模型名称转换为小写。

sails.models['CollectionName']不起作用,因为在models对象中,集合名称都是小写的。

sails.model['collectionname']应该有用。

我不知道为什么会这样,但我认为这将是在水线中建立ORM的一部分。

编辑:我认为这发生了here