今天讲NodeJS的数据存储,让我们告别假数据,开始吧!
mysql的安装和链接
这里提供两个链接,同学们自己去按照教程安装和链接数据库。
- https://blog.csdn.net/qq_39135287/article/details/82117234
- https://blog.csdn.net/qq_39135287/article/details/82587680
建库、建表、表操作(sql语句)
- 建库,就是建一个项目的数据库,我们使用Navicat客户端新建数据库即可,也可自行百度,这不是我们重点要讲的内容
- 建表,我们根据项目要求在我们新建的数据库下面建立不同的表结构,注意是表结构,不建内容,内容需要我们使用sql语句去建,这里也不重点讲,基本的图形化操作,都可以搞定,包括列名,和列的类型,自行学一下,很简单。
- 表操作,最基本的表操作无非“增、删、改、查”,它将覆盖我们80%的业务内容。这里总结一下常用的“增删改查”的sql语句
insert into users(username,`password`,realname)values('lisi','123','李四');
-- 其中,‘users’为表名,括号里面是要插入到表中的值的对应列名,'values'后面的括号为要插入的对应的值
select * from users
-- 其中,*代表在指定表里查询所有的列,这里建议
--出特殊要求,尽量减少*的使用,因为这样的性能会很不好,所以,我们可以查询指定的列,语法如下
select id, username from users;
-- 当然,我们也可以进行条件查询
select * from users where username='zhangsan' or `password`='123';
-- 也可以进行模糊查询
select * from users where password like '%1%';
-- 也可以对查询结果进行排序
select * from users where password like '%1%' order by id desc;
-- 我们可以通过update做更新操作
update users set realname='李四2' where username='lisi';
-- 我们可以通过delete做删除操作
delete from users where username='lisi';
--注意,delete操作必须要加where,不然把整个表都删除了,这是危险的操作
-- 所以我们一般使用软删除来做删除,我们需要给每一行
-- 数据加一个状态,通过更新状态,再根据这个状态的查询,达到一种软删除的目的
update users set state='0' where username='lisi'; --软删除
select * from users where state='1';
-- 这样我们就做了一个软删除
-- 也可以这样查询
select * from users where state<>'0';
-- <>代表不等于
至此,我们已经学会了sql语句中的增、删、改、查。
接下来,我们将使用nodejs
连接数据库,下面提供demo代码。
const mysql = require('mysql')
//创建连接对象
const con =mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'yourpassword',
port: 'yourport',
database: 'myblog',
})
//开始连接
con.connect()
//执行sql语句
// const sql = 'select * from users;'
const sql =`update users set realname='李四211' where username='lisi'`
con.query(sql, (err,result) => {
if(err) {
console.log(err)
}
console.log(result)
})
//关闭连接
con.end()
//注意,在这个环境中,我们需要安装mysql插件,先通过npm安装即可
上面我们已经学会了使用nodejs连接数据库,并操作表,接下来,我们就对其进行封装,将其使用在我们之前的博客项目中。
因为我们的项目使用的数据库是要分不同的环境的,所以我们对上面的demo进行改造。
我们需要用环境变量来获取环境,从而配置不同的数据库配置。以下是在我们之前的博客项目中操作
- 在src目录下建conf文件,做如下配置,用于区别不同的环境变量下应用不同的mysql配置
const env = process.env.NODE_ENV //环境变量
// 配置
let MYSQL_CONF
if (env === 'dev') {
MYSQL_CONF = {
host: 'localhost',
user: 'root',
password: 'ljt@1234',
port: '3306',
database: 'myblog',
}
}
if (env === 'production') {
MYSQL_CONF = {
host: 'localhost',
user: 'root',
password: 'ljt@1234',
port: '3306',
database: 'myblog',
}
}
module.exports = {
MYSQL_CONF
}
之前我们做了通过nodejs连接数据库的demo,在项目中,我们要满足开发要求需要将其封装为一个工具,在src下新建db文件夹,在其下面建mysql.js,如下:
const mysql = require('mysql')
const { MYSQL_CONF } = require('../conf/db')
//创建连接对象
const con = mysql.createConnection(MYSQL_CONF)
//开始连接
con.connect()
//统一执行sql的函数
function exec(sql) {
const promise = new Promise((resolve, reject) => {
con.query(sql, (err, result) => {
if (err) {
reject(err)
}
resolve(result)
})
})
return promise
}
module.exports = {
exec
}
这样我们就可以利用我们封装的工具,对接我们之前的API了,该工具,只接受sql语句。
到此为止,我们已经学会了数据库的基本使用,和在Nodejs中的使用,以及对其进行满足项目开发的封装,接下来,我们就在项目中使用他吧。
网友评论