我有一个Node.Js Express应用程序,我正在使用Sequelize.js OR / M来查询MySQL 5.6数据库.我有一个名为homes的表,其中包含几个位字段(其中一个称为isrental,我在模型中定义为布尔值.当查询数据库时,即使我在记录中存储了0,这些字段也总是返回true这是一个快速的代码示例:
var Sequelize = require('sequelize-mysql').sequelize;
var orm = new Sequelize('mysql://procHOAPro:password@NewMasterBedRm/HOAPro'), {
dialect: 'mysql',
language: 'en'
});
var Home = orm.define('homes', {
homeid : Sequelize.INTEGER,
state : Sequelize.STRING,
county : Sequelize.STRING,
city : Sequelize.STRING,
zip : DataTypes.STRING,
isrental : {type: Sequelize.BOOLEAN, allowNull: true, defaultValue: false},
isbuilderowned : {type: Sequelize.BOOLEAN, allowNull: true, defaultValue: false},
mailingaddress : Sequelize.STRING
});
Home.all().success(function(homes) {
console.log(homes[0].isrental);
console.log(homes[1].isrental);
});
表定义:
CREATE TABLE’homes'(
??‘homeid’int(11)NOT NULL AUTO_INCREMENT,
??‘state’varchar(2)NOT NULL,
??‘county’varchar(100)NOT NULL,
??‘city’varchar(100)NOT NULL,
??‘zip’varchar(5)NOT NULL,
??‘section’varchar(50)NOT NULL,
??‘township’int(11)NOT NULL,
??‘townshipdir’varchar(1)NOT NULL,
??‘range’int(11)NOT NULL,
??‘rangedir’varchar(1)NOT NULL,
??‘block’int(11)NOT NULL,
??‘lot’int(11)NOT NULL,
??‘physicaladdress’varchar(255)NOT NULL,
??‘isrental’位(1)NOT NULL DEFAULT b’0’,
??‘isbuilderowned’int(1)NOT NULL DEFAULT’0’,
??‘mailingaddress’varchar(255)DEFAULT NULL,
??PRIMARY KEY(‘homeid’),
??UNIQUE KEY’homeid_UNIQUE'(‘homeid’)
)ENGINE = InnoDB AUTO_INCREMENT = 12 DEFAULT CHARSET = utf8;
输出:
Executing: SELECT * FROM homes;
true
true
作为一个fyi,我也使用了node-orm OR / M,我得到了完全相同的行为.