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

nodejs使用Sequelize框架来操作数据库

时间:2023-04-03 16:19:56 Node.js

sequelize.define这个方法可以用来定义模型,例子如下:constSequelize=require('sequelize');varsequelize=newSequelize(config.database,config.username,config.password,{host:config.host,dialect:'mysql',pool:{max:5,min:0,idle:30000}});var网站=sequelize.define('website',{id:{type:Sequelize.BIGINT,primaryKey:true,autoIncrement:true},url:Sequelize.STRING(255),title:Sequelize.STRING(255),status:Sequelize.INTEGER,delete_mark:Sequelize.BOOLEAN},{timestamps:false});方法传入的第一个参数是数据表的单数形式,怎么理解呢?比如这里传入的website其实就是机型名,数据表默认是websites的复数形式。我在Laravel中也遇到过这种约定。人们常说约定大于定义。也就是说,如果我们都按照约定的规范去开发,效率其实比重新定义要高很多。那么,定义好模型之后,如何使用呢?(async()=>{letdemo=awaitWebsite.create({url:'http://www.xxxx.com/',title:'demo'});console.log(demo);})();inheritModelconst{Sequelize,DataTypes,Model}=require('sequelize');constconfig=require('../config');constsequelize=newSequelize(config.database,config.username,config.password,{host:config.host,dialect:'mysql',pool:{max:5,min:0,idle:30000}});/***@authorchaojilaji*数据表网站的关系对象映射*/classWebSite扩展模型{}WebSite.init({id:{type:Sequelize.BIGINT,primaryKey:true,autoIncrement:true},url:Sequelize.STRING(255),title:Sequelize.STRING(255),status:Sequelize.INTEGER,delete_mark:Sequelize.BOOLEAN},{sequelize,modelName:'Website',timestamps:false});(async()=>{awaitsequelize.sync();让x=awaitWebSite.create({url:'http://www.xxxxxxxx.com/',标题:'demo2'});console.log(x);})();module.exports=WebSite;我推荐使用继承Model的方法。通过创建一个类,可以使用model.exports=modulename这样就把model封装起来,在其他地方使用,require即可。如何操作数据表比较简单,参考API即可。sequelize文档地址炸鸡麻辣鸡原创文章,转载请注明出处