2016-04-20 22 views
2

我遇到了在Windows下运行我的应用程序的问题。通常情况下,我正在开发Macbook,但暂时不得不切换。事情是,该应用程序已经在没有问题的Windows上工作。下面是一个错误信息:SailsJs - 提升问题(orm挂钩未能加载)

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]具有价值development。但是hook.datastores是空的?这就是为什么没有config属性。

但事实是,我确实有我的配置连接/ connections.js

喜欢这里:

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

任何建议/提示的高度赞赏。

+0

检查所有模特定义 – vkstack

+0

那里没有问题。一切似乎都好。 – DeJoT

回答

0

检查您的控制器或型号是否包含任何错误代码。像任何符号一样。我面对同样的问题,而我的控制器包含任何字符之前或之后开始的API

1

你有一些连接定义,但你有默认连接定义,可以在config/models.js中指定?例如,如果您有:

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

然后 'mysql的' 需要你的connections.js

0

将其定义为我在你的配置/ connections.js看到

development: { 
     module : 'sails-mysql', 
     host  : 'localhost', 
     port  : 3306, 
     user  : 'ebuilder', 
     password : 'ebuilder', 
     database : 'ebuilder' 
    }, 

你给module : 'sails-mysql这是不正确的。应该是adapter:'sails-mysql'

development: { 
     adapter : 'sails-mysql', 
     host  : 'localhost', 
     port  : 3306, 
     user  : 'ebuilder', 
     password : 'ebuilder', 
     database : 'ebuilder' 
    },