2016-04-20 3 views
2

Ich habe Probleme mit meiner App unter Windows. Normalerweise entwickle ich Macbook, aber vorübergehend musste ich wechseln. Die Sache ist, dass die App bereits ohne Probleme an Windows gearbeitet hat. Hier eine Fehlermeldung:SailsJs - Probleme mit dem Heben (Orm Hook konnte nicht geladen werden)

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>

Ich habe versucht, es zu überprüfen, was genau in \node_modules\sails\node_modules\sails-hook-orm\lib\validate-model-def.js:109:84 geschieht so habe ich einfach console.log temporarly:

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

Und als Ergebnis sehe ich:

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: {} } 

So hat die normalizedModelDef.connection[0] Wert development. Aber hook.datastores ist leer? Deshalb gibt es keine Eigenschaft.

Aber die Sache ist, ich habe zu tun Verbindungen in meiner config/connections.js

wie hier:

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

Irgendwelche Vorschläge/Tipps sehr geschätzt.

+0

prüfen alle Modelle Definitionen – vkstack

+0

Keine Probleme da sein. Alles scheint in Ordnung zu sein. – DeJoT

Antwort

0

Überprüfen Sie, ob der Controller oder die Modelle einen Fehlercode enthalten. wie jedes Symbol. Ich hatte das gleiche Problem, während mein Controller ein beliebiges Zeichen vor oder nach dem Start von api enthielt

1

Sie haben einige Verbindungen definiert, aber haben Sie die Standardverbindung definiert, die in config/models.js angegeben werden könnte? Wenn Sie zum Beispiel haben:

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

dann 'mysql' muss definiert werden, in Ihrem connections.js

0

Wie ich in der config/connections.js sehen

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

Sie gegeben haben module : 'sails-mysql was nicht korrekt ist. Es sollte adapter:'sails-mysql'

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