2013-02-24 6 views
0

오류 "코드가 우선"는 "Sequelize"으로 테이블을 생성하는, 여기 내 코드는Sequelize 협회가 내가 원하는

var Sequelize = require('sequelize'); 

exports.createTable = 함수에 도착 (REQ, 고해상도) { var에 sequelize = 새로운 Sequelize ('myblog', 'root', '');

var Blog = sequelize.define('Blog',{ 
    // the blog id 
    bid: { type: Sequelize.INTEGER, allowNull: false, autoIncrement: true ,primaryKey: true }, 
    // bname 
    btitle: { type: Sequelize.STRING, allowNull: false }, 
    // blog Content 
    bcontent: { type: Sequelize.TEXT, allowNull: false }, 
    // blog date 
    bdate: { type: Sequelize.DATE, defaultValue: Sequelize.NOW } 
}); 

var User = sequelize.define('User',{ 
    // uid 
    uid: { type: Sequelize.INTEGER, allowNull: false ,autoIncrement: true, primaryKey: true }, 
    // uname 
    uname: { type: Sequelize.TEXT, allowNull: false, }, 
    // register date 
    regDate: { type: Sequelize.DATE, allowNull: false, defaultValue: Sequelize.NOW }, 

}); 

Blog.hasMany(User); 
User.hasMany(Blog); 

Blog.sync(); 
User.sync(); 

var blog = Blog.build({ 
    btitle: 'this is a title', 
    bcontent: 'this is a Content!', 
    bdate: new Date() 
}); 

var user1 = User.build({ 
    uname: 'www', 
    uregDate: new Date() 
}); 

var user2 = User.build({ 
    uname: 'www2', 
    uregDate: new Date() 
}); 

blog 
    .save() 
    .success(function() { 
     console.log('blog save suc'); 
    }); 

user1 
    .save() 
    .success(function() { 
     console.log('user save suc') 
    }); 
user2 
    .save() 
    .success(function() { 
     console.log('user save suc') 
    }); 

blog 
    .setUsers([user1,user2])  
    .success(function() { 
     console.log('saved') 
    }) 
    .error(function (err) { 
     console.log(err); 
    }); 
// blog.getUsers() 
// .success(function (ascUser) { 
//  console.log(ascUser); 
// }); 


sequelize 
    .sync() 
    .success(function() { 
     res.send('createTable ok!'); 
    }) 
    .error(function() { 
     res.send('createTable falied!');  
    }); 

}

그리고 나는 오류가 발생했습니다 : 오류 : ER_BAD_FIELD_ERROR를 'User.id'알 수없는 열을 'where 절에서 .... 누가 나를 도울 수 있습니까? 많이 들으세요

답변

1

bid 및 uid 필드는 무엇입니까? Sequelize가 자동으로 ID를 작성하므로,이 모든 것이 사용 중이라면 필요하지 않으면 삭제해야합니다. 나는 긍정적이지는 않지만, Sequelize가 id 필드를 자동으로 생성하지 않을 수도있는 자동 증가 기본 키를 생성하면이를 대신 사용하려고한다고 생각합니다. 그러나 협회는이 칼럼을 ID로 기대합니다. 다시 한 번 확실하지는 않지만 입찰가와 사용자 입력란을 삭제하면 예상대로 작동합니다.