【问题标题】:sails.models.['CollectionName'] is not working in latest Sails Versionsails.models.['CollectionName'] 在最新的 Sails 版本中不起作用
【发布时间】:2015-08-09 22:06:59
【问题描述】:

我正在尝试通过 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: 嗨,杰森, 在所有 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'].find 工作正常,SailsJS 版本没有任何变化。所以,让我再测试一段时间。

Ps:不确定,为什么我无法直接在下方添加评论(MAC / chrome 浏览器)。所以,现在,编辑这个问题本身。

【问题讨论】:

  • 我希望下面的答案有所帮助。如果您想要其他资源,这里有一个用于sails.js、node.js 和水线问题的聊天室。 gitter.im/balderdashy/sails

标签: sails.js sails-mongo


【解决方案1】:

我认为你访问不正确。

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

【讨论】:

    【解决方案2】:

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

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

    sails.model['collectionname'] 应该可以工作。

    我不知道为什么会这样,但我认为这将是在水线中构建 ORM 的过程。

    编辑:我认为这会发生here

    【讨论】:

      猜你喜欢
      • 2022-10-26
      • 2016-10-05
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2021-05-08
      • 2023-04-07
      • 2019-09-25
      • 2023-03-09
      相关资源
      最近更新 更多