sequelize 增加数据库字段_为什么Node.js中的Sequelize.js总是从MySQL位字段...

在Node.js应用中使用Sequelize ORM查询MySQL数据库时遇到问题,位字段(如isrental)总是返回true,即使在数据库中存储的是0。代码示例显示了查询和表定义,但无论数据库值如何,输出始终为true。问题同样出现在使用node-orm的情况下。
摘要由CSDN通过智能技术生成

我有一个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,我得到了完全相同的行为.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值