HOST: “localhost”,
USER: “root”,
PASSWORD: “root”,
DB: “testdb”,
dialect: “mysql”,
};
连接mysql
上面我们已经写好了数据库的配置文件,下面我们就来编写一个通用的Sequlize实例!
在app文件夹下创建models文件,然后新建index.js。下面开始编写连接数据库的代码:
const dbConfig = require(“…/config/db.config.js”);
const Sequelize = require(“sequelize”);
const sequelize = new Sequelize(dbConfig.DB, dbConfig.USER, dbConfig.PASSWORD, {
host: dbConfig.HOST,
dialect: dbConfig.dialect,
});
const db = {};
db.Sequelize = Sequelize;
db.sequelize = sequelize;
module.exports = db;
这里请注意:我们最后又创建了一个db 对象,定义这个db对象的原因是,我们可以将Sequelize类和sequelize都挂载到db上,进行一个统一的管理,同时还可以将下面要创建的模型都挂载到db上!
创建课程模型
我们已经可以正常的连接数据库了,那连接数据库之后,我们是不是需要在testdb创建表!之前我们可能是需要编写sql脚本或者使用可视化工具创建表,添加字段。不过Sequelizes可以通过定义模型,同步模型到数据库中,从而自动的在数据库中创建表以及字段。也就是说Sequelizes的模型对应数据库中的表!
在Sequelizes中有两种定义数据模型的方式。
这里我们使用define方式,defined是通过Sequlize实例来调用的。
我们定义了一个函数,这个函数接受sequelize,实例 Sequelize类两个参数,然后在函数内部通过调用实例上define函数来创建一个Tutorial实例。
module.exports = (sequelize, Sequelize) => {
const Tutorial = sequelize.define(“tutorial”, {
title: {
type: Sequelize.STRING
},
description: {
type: Sequelize.STRING
},
published: {
type: Sequelize.BOOLEAN
}
});
return Tutorial;
};
虽然我们只定义了title,description published 三个字段,但是Sequelize 将会自动这些列将自动生成:id、createdAt、updatedAt。
然后,我们在app/models/index.js,中调用这个函数。
…
db.Sequelize = Sequelize;
db.sequelize = sequelize
db.tutorials = require(“./tutorial.model.js”)(sequelize, Sequelize);
module.exports = db;
这里我们再来说一下,定义db对象的好处。
-
将Sequelize类, sequelize实例挂在db上,这样我们在其他文件中用到Sequelize类, sequelize实例,是只需要import db就可以,不需要引入两次
-
可以将模型都挂在到db。这里只是一个模型,如果100个模型,某个文件,我们可能会需要引入99个模型,那么就要写99个import,但是你都挂在到db上,就只需要写一次import。
难道这样就够了吗?不,远远不够!
提前多熟悉阿里往年的面试题肯定是对面试有很大的帮助的,但是作为技术性职业,手里有实打实的技术才是你面对面试官最有用的利器,这是从内在散发出来的自信。
备战阿里时我花的最多的时间就是在学习技术上,占了我所有学习计划中的百分之70,这是一些我学习期间觉得还是很不错的一些学习笔记
我为什么要写这篇文章呢,其实我觉得学习是不能停下脚步的,在网络上和大家一起分享,一起讨论,不单单可以遇到更多一样的人,还可以扩大自己的眼界,学习到更多的技术,我还会在csdn、博客、掘金等网站上分享技术,这也是一种学习的方法。
今天就分享到这里了,谢谢大家的关注,以后会分享更多的干货给大家!
![阿里一面就落马,恶补完这份“阿里面试宝典”后,上岸蚂蚁金服](https://upload-images.jianshu.io/upload_images/24195226-94ca5a0aa5ed2850?imageMogr2/auto-
需要文中资料的朋友,可以加我\/信获取:vip1024b 备注Java
orient/strip%7CimageView2/2/w/1240)
.jpeg)(title-需要文中资料的朋友,可以加我/信获取:vip1024b 备注Java)]
orient/strip%7CimageView2/2/w/1240)
[外链图片转存中…(img-6iYa7obK-1716343132798)]
[外链图片转存中…(img-20YXolNK-1716343132799)]