koa2 mysql sequelize_NodeJs + koa2 + sequelize-auto + sequelize 搭建项目

43e5528fd8a2d944b72b76e80414c3b0.png

2、建立mysql数据库,并创建一些假数据

2.1  通过navicat工具,新建一个test数据库

2.2  在test数据库里执行下面这一段sql语句

20b81601942e4fc12754275cd4aedfd406e.jpg

c21c4ce7a93d33cf4f7d33ab9763ccb13db.jpg

SET FOREIGN_KEY_CHECKS=0;--------------------------------Table structure for member------------------------------

DROP TABLE IF EXISTS`member`;CREATE TABLE`member` (

`id`bigint(20) NOT NULLAUTO_INCREMENT,

`name`varchar(20) DEFAULT NULL,

`sex`tinyint(4) NOT NULL DEFAULT '0',PRIMARY KEY(`id`)

) ENGINE=MyISAM AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;--------------------------------Records of member------------------------------

INSERT INTO `member` VALUES ('1', 'jacson', '0');INSERT INTO `member` VALUES ('2', 'jacson', '0');INSERT INTO `member` VALUES ('3', 'jacson', '0');INSERT INTO `member` VALUES ('4', 'jacson', '0');INSERT INTO `member` VALUES ('5', 'jacson', '0');INSERT INTO `member` VALUES ('6', 'jacson', '0');INSERT INTO `member` VALUES ('7', 'jacson', '0');INSERT INTO `member` VALUES ('8', 'jacson', '0');INSERT INTO `member` VALUES ('9', 'jacson', '0');INSERT INTO `member` VALUES ('10', 'jacson', '0');INSERT INTO `member` VALUES ('11', 'jacson', '0');INSERT INTO `member` VALUES ('12', 'jacson', '0');INSERT INTO `member` VALUES ('13', 'jacson', '0');INSERT INTO `member` VALUES ('14', 'jacson', '0');INSERT INTO `member` VALUES ('15', 'jacson', '0');INSERT INTO `member` VALUES ('16', 'jacson', '0');--------------------------------Table structure for user------------------------------

DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (

`id`int(11) unsigned zerofill NOT NULLAUTO_INCREMENT,

`name`varchar(255) DEFAULT NULL,

`age`int(11) DEFAULT NULL,PRIMARY KEY(`id`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;--------------------------------Records of user------------------------------

INSERT INTO `user` VALUES ('00000000001', '你好', '15');INSERT INTO `user` VALUES ('00000000002', '我不好', '16');INSERT INTO `user` VALUES ('00000000003', '他好', '17');

View Code

3、建立orm库,并使用

3.1  在当前项目中安装下面这几个依赖(cmd命令行)

yarn add sequelize

yarn add sequelize-auto

yarn add mysql

yarn add mysql2

3.2  在当前目录下,新建一个auto.js文件(记住,自己替换database、user、password、port这几个mysql的参数)

auto.js文件内容如下所示

0d3d370221f84b2aade71aa6829ad7172e4.jpg

883ed9b1b235f5832011350de444f05974f.jpg

const SequelizeAuto = require('sequelize-auto')

const auto= newSequelizeAuto('database', //数据库的库名

'user', //mysql数据库的用户名

'password', //mysql数据库的密码

{

host:'127.0.0.1', //数据库服务器ip

dialect: 'mysql',

directory:'./models', //prevents the program from writing to disk

port: '3306', //数据库运行端口

additional: {

timestamps:false}

}

)

auto.run(function(err) {if (err) throwerr;//console.log(auto.tables); // table list

//console.log(auto.foreignKeys); // foreign key list

//生成models表后,直接执行项目

require('./bin/www');

});

View Code

3.3 在package.json里scripts里添加一行配置

"auto": "node auto",

e0b92402c855f1a006db6a52edade3ae.png

3.4 执行下面的命令行,  生成models模型(在当前目录下会出现models文件,这些就是模型,如下图所示。)

npm run auto

4166eebf90ea679592827e7004aeecc2.png

3.5 在当前目录下,新建一个tool文件夹,文件夹内新建一个db.js文件

db.js文件内容如下所示

74ab680a31585a892830553c164d142a2d4.jpg

d7bc17b2c283e625d3b1a6b9f13797fed81.jpg

const Sequelize = require('sequelize');

const fs= require("fs");

const path= require("path");

const basePathG= path.join(__dirname, '../models');

let models=fs.readdirSync(basePathG);

dbInit();

asyncfunctiondbInit() {

let sequelize= await newSequelize('database', //数据库的库名

'user', //mysql数据库的用户名

'password', //mysql数据库的密码

{'dialect': 'mysql', //数据库使用mysql

'host': '127.0.0.1', //数据库服务器ip

'port': '3306', //数据库运行端口

'timestamp': false, //这个参数为true是MySQL会自动给每条数据添加createdAt和updateAt字段

'quoteIdentifiers': true}

);

models.forEach((item, index)=>{

let name= item.substr(0, item.length - 3);

name= name.substring(0, 1).toUpperCase() + name.substring(1) //首字母大写

module.exports[name]= require(basePathG + `/${item}`)(sequelize, Sequelize.DataTypes)

});

}

View Code

3.6 到这里,我们就可以随便引用db了。然后可以肆无忌惮的使用orm库里的方法了

b6e0b8fe17ae2f0f304d0c754cadc3f7.png

3.7  通过url地址访问,查看我们的最终成果

c8166f7d91b65f8dec9e3660bf93ac0a.png

本项目所有代码皆上传至github。github地址:点我

注:皆因sequelize-auto的网上教程有点少,故踩了不少坑,所以,自己写了一个。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值