当前位置: 首页 > 后端技术 > Node.js

egg.jssequelize常用方法总结

时间:2023-04-03 12:19:15 Node.js

Node.js环境切换窗口不支持直接切换node环境变量,需要通过插件cross-env来切换//安装插件npminstallcross-env\-g//使用cross-envcross-envNODE\_ENV\=测试节点app.jssequelize变量值equelize.STRING//VARCHAR(255)类型:字符串最大值:65535个字符Sequelize.STRING(1234)//VARCHAR(1234)类型:可变长度最大值:65535字符续集。TEXT//TEXT类型:字符串最大值:65535个字符Sequelize.TEXT('tiny')//TINYTEXT类型:字符串最大值:255个字符Sequelize.INTEGER//INTEGER类型:整数最大值:范围(-2147483648~2147483647)Sequelize.BIGINT//BIGINT类型:整数最大值:范围(+-9.22*10到18次方)Sequelize.BIGINT(11)//BIGINT(11)类型:整数最大值:范围(+-9.22*10到18次方)18次方)Sequelize.FLOAT//FLOAT类型:单精度浮点数8位精度(4字节)Sequelize.FLOAT(11)//FLOAT(11)类型:单精度浮点8位精度(4字节)Sequelize.FLOAT(11,12)//FLOAT(11,12)类型:精度浮点8位精度(4字节)mtotalNumber,d小数位Sequelize.DOUBLE//DOUBLE类型:双精度浮点16位精度(8字节)Sequelize.DOUBLE(11)//DOUBLE(11)类型:双精度浮点16-位精度(8字节)Sequelize.DOUBLE(11,12)//DOUBLE(11,12)类型:双精度浮点数16位精度(8字节)m总数,d小数位Sequelize.DECIMAL//DECIMALtype:fixed-pointnumbertypeSequelize.DECIMAL(10,2)//DECIMAL(10,2)type:fixed-pointnumbertype参数m<65为总数,d<30且d{//自定义默认值returnuuid.v1();}},//简单定义类型,默认不能为空name:Sequelize.STRING(32)})definemodel//definemodelSequelize.define('user',{//详细定义id:{type:Sequelize.INTEGER,//字段类型primaryKey:true,//是否为主键allowNull:false,//是否允许为空unique:true,//是否唯一autoIncrement:true,//是否自增},//自定义值id2:{type:Sequelize.STRING(36),//字段类型primaryKey:true,//主键是否为allowNull:false,//是否允许为空defaultValue:()=>{//自定义默认值returnuuid.v1();}},//简单定义类型,默认不能为空name:Sequelize.STRING(32)})newdata//build()方法需要调用save()保存letuser=User.build({name:'测试',密码:'123456',});letrs=awaituser.save();//通过create()创建letrs=awaitUser.create({name:'test',password:'123456',});修改数据//注意:更新失败返回值为0,更新成功为1//第一个参数为更新值//第二个参数为更新查询条件letrs=awaitUser.update({名称:'test2',},{其中:{id:1,},},);删除数据letrs=awaitUser.destroy({where:{id:1,},})查询数据letOp=Sequelize.Op;//查询所有letrs=awaitUser.findAll({limit:10,//当前页码偏移量:0,//开始下标顺序:[['create_time','desc']],//排序规则where:{//查询条件类型:'vip',//指定值[Op.or]:{//使用特殊操作符id:[1,2,3,4,5],//id包含这些数据[Op.like]:{name:'super_'},//用户名包含super_}},attributes:[//指定返回的属性'id',['name','userName']//第一个参数为属性,第二个参数为别名,return返回数据通过alias],});//查询一段数据letrs=awaitUser.findOne({where:{id:'123456'},});高级查询//findByPk——通过主键查询letres=awaitUser.findByPk(123);//findOne-查询第一条满足条件的数据letres=awaitUser.findOne({where:{type:'user'}});//findOrCreate-查询,不存在则创建dataconst[user,created]=awaitUser.findOrCreate({where:{username:'test'},//如果不存在则创建value默认值:{作业:'JavaScript'}});控制台。日志(用户。用户名);//'测试'console.log(user.job);//这可能是JavaScript或其他console.log(created);//是否创建了实例if(created){console.log(user.job);//创建一个实例,值必须是JavaScript}//findAndCountAll-查询并返回总数//count-查询条件下的记录总数//rows-查询到的所有数据const{count,rows}=awaitUser.findAndCountAll({where:{type:'vip'}});batchnewletre=awaitUser.bulkCreate({name:'test_1'},{name:'test_2'},);