orm - SailsJs - 提升问题(orm hook 加载失败)

标签 orm sails.js hook

我在 Windows 下运行应用程序时遇到问题。通常,我在 Macbook 上进行开发,但暂时不得不切换。问题是,该应用程序已经可以在 Windows 上运行,没有任何问题。这是一条错误消息:

error: A hook (orm) failed to load! verbose: Lowering sails... verbose: Sent kill signal to child process (8684)... verbose: Shutting down HTTP server... verbose: HTTP server shut down successfully. error: TypeError: Cannot read property 'config' of undefined at validateModelDef (C:\projects\elearning-builder\node_modules\sails\node_modules\sails-hook-orm\lib \validate-model-def.js:109:84) at C:\projects\elearning-builder\node_modules\sails\node_modules\sails-hook-orm\lib\initialize.js:218 :36 at arrayEach (C:\projects\elearning-builder\node_modules\sails\node_modules\lodash\index.js:1289:13) at Function. (C:\projects\elearning-builder\node_modules\sails\node_modules\lodash\index.j s:3345:13) at Array.async.auto._normalizeModelDefs (C:\projects\elearning-builder\node_modules\sails\node_module s\sails-hook-orm\lib\initialize.js:216:11) at listener (C:\projects\elearning-builder\node_modules\sails\node_modules\sails-hook-orm\node_module s\async\lib\async.js:605:42) at C:\projects\elearning-builder\node_modules\sails\node_modules\sails-hook-orm\node_modules\async\li b\async.js:544:17 at _arrayEach (C:\projects\elearning-builder\node_modules\sails\node_modules\sails-hook-orm\node_modu les\async\lib\async.js:85:13) at Immediate.taskComplete (C:\projects\elearning-builder\node_modules\sails\node_modules\sails-hook-o rm\node_modules\async\lib\async.js:543:13) at processImmediate [as _immediateCallback] (timers.js:383:17) PS C:\projects\elearning-builder>

我试图检查一下, \node_modules\sails\node_modules\sails-hook-orm\lib\validate-model-def.js:109:84 中到底发生了什么 所以我临时添加了简单的console.log:

  console.log("error in line below", hook);
  var normalizedDatastoreConfig = hook.datastores[normalizedModelDef.connection[0]].config;

结果我看到:

error in line below Hook {
  load: [Function: wrapper],
  defaults:
   { globals: { adapters: true, models: true },
     orm: { skipProductionWarnings: false, moduleDefinitions: [Object] },
     models: { connection: 'localDiskDb' },
     connections: { localDiskDb: [Object] } },
  configure: [Function: wrapper],
  loadModules: [Function: wrapper],
  initialize: [Function: wrapper],
  config: { envs: [] },
  middleware: {},
  routes: { before: {}, after: {} },
  reload: [Function: wrapper],
  teardown: [Function: wrapper],
  identity: 'orm',
  configKey: 'orm',
  models:
   { /* models here, I removed this as it was too long /*},
  adapters: {},
  datastores: {} }

因此,normalizedModelDef.connection[0] 具有开发的值(value)。但是 hook.datastores 是空的?这就是为什么没有 config 属性的原因。

但问题是,我的 config/connections.js 中确实有连接

就像这里:

development: {
        module    : 'sails-mysql',
        host      : 'localhost',
        port      : 3306,
        user      : 'ebuilder',
        password  : 'ebuilder',
        database  : 'ebuilder'
    },
    production: {
        /* details hidden ;) */
    },
    testing: {
        /* details hidden ;) */
    }

非常感谢任何建议/提示。

最佳答案

您定义了一些连接,但是您是否定义了可能在 config/models.js 中指定的默认连接?例如,如果您有:

    module.exports.models = {
      connection: 'mysql',
      ...

那么'mysql'需要在你的connections.js中定义

关于orm - SailsJs - 提升问题(orm hook 加载失败),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36750014/

相关文章:

node.js - 使用事务时的 Sequelize 回调

java - 延迟加载问题何时将子项添加到父项 - hibernate

json - Elasticsearch:如何动态存储所有json对象

64-bit - 在 x64 驱动程序中 Hook ZwTerminateProcess(不带 SSDT)

express - 使用关联将 model.update 序列化

php - Laravel 4 - 外键约束失败

sails.js - 如何开始使用套接字机器包?

node.js - 使用 Jira API REST 创建问题

C# 有没有办法通过带钩子(Hook)的附加鼠标按钮检测鼠标点击?

c - 进程 Hook 问题