2017-08-06 10 views
1

sails-sqlserverをアダプタとして使用しています。次のいずれかのモデルのデータベースに新しい行を作成しようとしています。TypeError:定義されていないセールのプロパティ 'collections'を読み取ることができません

これは最初のモデルである:

// Roles.js 

module.exports = { 

    autoCreatedAt: false, 
    autoUpdatedAt: false, 

    attributes: { 

    name: { 
     type: 'string' 
    }, 

    approval_level: { 
     model: 'approval_levels' 
    }, 

    specified: { 
     type: 'boolean' 
    },     
    entity_operations: { 
     collection: 'entity_operations', 
     via: 'roles', 
     dominant: true 
    }, 

    users: { 
     collection: 'system_users', 
     via: 'role' 
    } 

    }, 

    createRole: function (name, approval_level, cb) { 

    values = { 
     name: name, 
     approval_level: approval_level 
    }; 

    Roles.create(values).exec(cb); 
    }, 


    getAll: function (cb) { 
    Roles.find().exec(cb); 
    } 


}; 

これは第2のモデルである:これらの2つのモデルがやろうとしています何を一緒に多くの関係に多くを持っている

// Entity_Operations.js 

module.exports = { 

    autoCreatedAt: false, 
    autoUpdatedAt: false, 

    attributes: { 

     entity_name: { 
      type: 'string' 
     }, 

     operation: { 
      model: 'operations' 
     }, 

     roles: { 
      collection: 'roles', 
      via: 'entity_operations' 
     } 

    }, 

    getAll: function (cb) { 
     Entity_operations.find().exec(cb); 
    } 

}; 

はちょうどこのです:

Entity_operations.create({ 
      entity_name: 'example', 
      operation: 6 
     }).exec((err, entity: Entity_operations) => { 
      console.log(entity); 
     }); 

このエラーは、私に知ってもらえる何も説明せずに出てきますこのエラーがから来ているROM:私はそれは私の独自の実装、それが開始する前にこのシーダのシーダでそれをしようとしていますsuccededコントローラで同じコードを試してみました

/opt/nodejs/back-heaven/dev/node_modules/sails-sqlserver/lib/adapter.js:435 
     Object.keys(connections[connection].collections[collection].definition).forEach(function(key) { 
             ^
TypeError: Cannot read property 'collections' of undefined 
    at Object.getPrimaryKey (/opt/nodejs/back-heaven/dev/node_modules/sails-sqlserver/lib/adapter.js:435:42) 
    at Object.create (/opt/nodejs/back-heaven/dev/node_modules/sails-sqlserver/lib/adapter.js:374:24) 
    at module.exports.create (/opt/nodejs/back-heaven/dev/node_modules/waterline/lib/waterline/adapter/dql.js:84:13) 
    at child.createValues (/opt/nodejs/back-heaven/dev/node_modules/waterline/lib/waterline/query/dql/create.js:220:16) 
    at /opt/nodejs/back-heaven/dev/node_modules/waterline/lib/waterline/query/dql/create.js:74:20 
    at /opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:726:13 
    at /opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:52:16 
    at /opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:269:32 
    at /opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:44:16 
    at /opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:723:17 
    at /opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:167:37 
    at /opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:52:16 
    at /opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:269:32 
    at /opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:44:16 
    at child.<anonymous> (/opt/nodejs/back-heaven/dev/node_modules/waterline/lib/waterline/utils/schema.js:152:44) 
    at fn (/opt/nodejs/back-heaven/dev/node_modules/waterline/lib/waterline/utils/callbacksRunner.js:41:10) 
    at /opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:181:20 
    at iterate (/opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:262:13) 
    at Object.async.forEachOfSeries.async.eachOfSeries (/opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:281:9) 
    at Object.async.forEachSeries.async.eachSeries (/opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:214:22) 
    at Object.runner.beforeCreate (/opt/nodejs/back-heaven/dev/node_modules/waterline/lib/waterline/utils/callbacksRunner.js:44:9) 
    at /opt/nodejs/back-heaven/dev/node_modules/waterline/lib/waterline/query/dql/create.js:180:17 
    at /opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:718:13 
    at iterate (/opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:262:13) 
    at /opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:274:29 
    at /opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:44:16 
    at /opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:723:17 
    at /opt/nodejs/back-heaven/dev/node_modules/async/lib/async.js:167:37 

私は帆をプログラムオブジェクトと帆を呼び出す作りますこのような

を.LOAD:

let myApp = new Sails(); 

    myApp.load({}, (err) => { 
     if (err) throw err; 

     // this execute the seeds in the database seeder class 
     let seeder = require(`../../api/seeders/${scope.args[0]}`); 
     seeder.handle(() => { 

     myApp.lower((err) => { 
      if (err) throw err; 
      console.log(`Seeder ` + scope.args[0] + ` finished seeding`); 
     }); 

     }); 

    }); 

私もsails.lift()とまだ同じエラーで試してみました。

答えて

0

私は、sails.lower()を呼び出す必要があるコールバック関数を作成していましたが、モデル作成コードが始まる前でも間違った場所に置いていました。データベースコールバック関数でそれを呼び出すことを忘れないでください。

帆のこの同じ問題に直面している他の人にとっては、帆が実際には積載されていないか、またはあなたが帆を始動して作業していたときに問題が起きていたのですが、モデルはこの奇妙な問題を抱えています。私は帆がより表現的なエラーメッセージを表示するためにそのコードでそのようなエラーを処理することを望みます。

私はこれが誰にも役立つことを願っています。

関連する問題