2014-01-22 4 views
0

내가 Express를 Sequelize를 사용하고이 튜토리얼로 시작하는 'init를'있는 방법이 없습니다 클래스 :Sequelize : <a href="http://sequelizejs.com/articles/express" rel="nofollow">http://sequelizejs.com/articles/express</a></p> <p> 나는 사용자가 어떤 사용자 (친구 목록)를 갖고 싶어</p> <p>이 내 사용자됩니다 : 진정한 개체

/home/damien/Documents/app/node_modules/sequelize/lib/associations/has-many.js:172 
     this.through.init(this.through.daoFactoryManager) 
       ^
TypeError: Object true has no method 'init' 
    at module.exports.HasMany.injectAttributes (/home/damien/Documents/app/node_modules/sequelize/lib/associations/has-many.js:172:20) 
    at Mixin.hasMany (/home/damien/Documents/app/node_modules/sequelize/lib/associations/mixin.js:53:68) 
    at Object.sequelize.define.associate (/home/damien/Documents/app/models/user.js:18:11) 
    at module.exports.lodash.extend.sequelize (/home/damien/Documents/app/models/index.js:20:27) 
    at Array.forEach (native) 
    at Object.<anonymous> (/home/damien/Documents/app/models/index.js:18:17) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
:

module.exports = function(sequelize, DataTypes) { 
    var User = sequelize.define('User', { 
    username : {type:DataTypes.STRING, allowNull:false,unique: true}, 
    email : {type:DataTypes.STRING, allowNull:false,unique:true,validate:{isEmail : true},msg:"Email must be valid."}, 
    password : {type:DataTypes.STRING,allowNull:false,validate:{len:[6,],msg:"Password length > 5."}}, 
    score : DataTypes.INTEGER, 
    timeplay : DataTypes.BIGINT, 
    timeaverage : DataTypes.INTEGER, 
    nbrnotfoundword : DataTypes.INTEGER, 
    nbrnotfound : DataTypes.INTEGER 
    }, 
    { 
    associate: function(models) { 
     User.hasMany(models.User) 

    } 


    }) 

    return User 
} 

User.hasMany (models.User은) 나에게 오류를 제공합니다

Thx 도움.

답변

0

사용자가 정의되기 전에 사용자가 사용 된 것이 원인 일 가능성이 큽니다.

대신을 시도해보십시오

var Sequelize = require('sequelize-mysql').sequelize 

하지

var Sequelize = require('sequelize') 
:
module.exports = function(sequelize, DataTypes) { 

    var User = sequelize.define('User', { 
    username : {type:DataTypes.STRING, allowNull:false,unique: true}, 
    email : {type:DataTypes.STRING, allowNull:false,unique:true,validate:{isEmail : true}, msg:"Email must be valid."}, 
    password : {type:DataTypes.STRING,allowNull:false,validate:{len:[6,],msg:"Password length > 5."}}, 
    score : DataTypes.INTEGER, 
    timeplay : DataTypes.BIGINT, 
    timeaverage : DataTypes.INTEGER, 
    nbrnotfoundword : DataTypes.INTEGER, 
    nbrnotfound : DataTypes.INTEGER 
    }); 

    User.hasMany(User); 

    return User; 
}