nodejs mysql储存过程_跟我一起学NodeJS之数据存储

本文介绍了如何使用NodeJS连接并操作MySQL数据库,包括增删改查的基础SQL语句和使用NodeJS执行SQL的示例。此外,还讨论了数据库配置的环境变量管理以及对数据库操作的封装。

d39cd149bda8

u=1056781235,1342376453&fm=26&gp=0.jpg

今天讲NodeJS的数据存储,让我们告别假数据,开始吧!

mysql的安装和链接

这里提供两个链接,同学们自己去按照教程安装和链接数据库。

建库、建表、表操作(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中的使用,以及对其进行满足项目开发的封装,接下来,我们就在项目中使用他吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值