2016-10-26 5 views
1

У меня есть вопросnode.js sequelize hasMany отношения

есть файл модели ..

модель/user.js

module.exports = { 

    get: function() { 

    //configuration database 
    var database=require(""+appDir+"/config/database"); 

    //sequelize modul 
    var Sequelize=require("sequelize"); 

    //set connection 
    var connection = new Sequelize(database.database,database.user,database.password, { 
     host: database.host, 
     dialect: database.dialect, 

     pool: { 
     max: 5, 
     min: 0, 
     idle: 10000 
     } 
    }); 

    //table definition 
    var User = connection.define('user', { 
     firstName: { 
     type: Sequelize.STRING 
     }, 
     lastName: { 
     type: Sequelize.STRING 
     }, 

     status: { 
     type: Sequelize.INTEGER 
     } 
    }); 



    //table definition 
    var Tasks = connection.define('tasks', { 
     taskname: { 
     type: Sequelize.STRING 
     }, 

     user_id: { 
     type: Sequelize.INTEGER 
     } 
    }); 


    User.hasMany(Tasks, {foreignKey: 'user_id'}); 
    Tasks.belongsTo(User, {foreignKey: 'user_id'}); 

    return User; 


    } 
}; 

использования следующий код; файл модели вызывается требуется .. этот код работает без включают attribute..but не работает с включают атрибут

//model call 
var model=require("../model/user.js"); 

    model.sync().then(function() 
      { 
      model.find({include: [Task]}).then(function(user) 
      { 
       callback(user); 
      }) 
       .catch(function(error) 
       { 
       callback(error); 
       }) 
      }); 

но не work..I хочет присоединиться две таблицы ..

+0

попробуйте изменить '' user_id' к userId' – paolord

ответ

0

Вы экспортируете только функцию get в model/user.js, но затем вы пытаетесь вызвать функцию синхронизации, которая не определена. Во-первых, попытаться получить модель пользователя (модель Sequelize), а затем вызвать функцию синхронизации этого:

var model = require("../model/user.js"); 
model.get().sync() 
+0

да он работал, когда требуется пользователю –