Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Sequelize belongtomany:WHERE子句中的自定义列_Node.js_Sequelize.js - Fatal编程技术网

Node.js Sequelize belongtomany:WHERE子句中的自定义列

Node.js Sequelize belongtomany:WHERE子句中的自定义列,node.js,sequelize.js,Node.js,Sequelize.js,我有这3种型号: var User = sequelize.define('users', { name: { type: DataTypes.STRING(50), field: 'name' } }); var Book = sequelize.define('books', { name: { type: DataTypes.STRING(50), field: 'name' } });

我有这3种型号:

var User = sequelize.define('users', {
    name: {
        type: DataTypes.STRING(50),
        field: 'name' 
    }
});

var Book = sequelize.define('books', {
    name: {
        type: DataTypes.STRING(50),
        field: 'name' 
    }
});

var UserBook = sequelize.define('userbook', {
    validated: {
        type: DataTypes.INTEGER,
        field: 'validated',
        defaultValue: 0
    }
});

Book.belongsToMany(User, {through: UserBook, foreignKey: 'bookId'});
User.belongsToMany(Book, {through: UserBook, foreignKey: 'userId'});
现在我想为validated=1的用户获取书籍

我试过这个:

User.findOne({
    where: { id: req.session.user.id }
})
.then(function(user){
    user.getBooks({
        through: { validated: 1 }
    })
    .then(function(books){
        return res.json({success: true, books: books});
    })
});
但它返回所有书籍,而不检查validated=1

如何获取已验证=1的所有书籍

谢谢

我已经试过了:

User.findOne({
  where: { id: req.session.user.id }
})
  .then(function (user) {
    user.getBooks({
      where: { validated: 1 }
    })
      .then(function (books) {
        return res.json({ success: true, books: books });
      })
  });
?

编辑(它有效):

我试过这个:

User.findOne({
  where: { id: req.session.user.id }
})
  .then(function (user) {
    user.getBooks({
      where: { validated: 1 }
    })
      .then(function (books) {
        return res.json({ success: true, books: books });
      })
  });
?

编辑(它有效):


是的,但是它抛出了这个错误:
ER\u BAD\u FIELD\u错误:where子句中的未知列'books.validated'
User.findById(req.session.User.id,{include:[{model:Book,through:{where:{validated:1}}}]})。然后((User)=>{console.log(User);})是的,但是它抛出了这个错误:
ER\u BAD\u FIELD\u错误:where子句中的未知列'books.validated'
User.findById(req.session.User.id,{include:[{model:Book,through:{where:{validated:1}}}]})。然后((User)=>{console.log(User);})