前言
在大学的时候就对一整套的流程很感兴趣,奈何当时对前端掌握程度不深,没有继续研究前端如何通信mysql;现在补个课。
创建mysql
我们先建一个数据库,这里建议直接用腾讯云的免费数据库,这个数据库用做我们学习是足够的。创建好后在轻量应用服务器中选择数据库,在右边的卡片中打开公网,在左边的卡片中重置密码。然后点击登录,进入下一步。这里只需要注意对应的用户名和密码对不对,一般来说输入的账号密码正确就可以直接登陆了。
创建数据库
我们选择新建->新建库,然后点击新建数据库按钮,输入名字,这里我取test1
。然后在左上的下拉框中切到test1这个数据库即可。
创建表
我们选择新建->新建表,这里再提醒一下注意切换到我们刚刚新建的数据库,在基本信息中添加表名,并把下边的字符集换成utf8mb4,然后在列信息创建对应的键。这里创建了int的id,char长度为8的name,char长度为16的nameadd,然后点击下面的提交即可。
进行通信
我们新建文件夹,创建一个package,安装express和mysql:
npm init
npm i express
npm i mysql
var express = require("express"); //引用外部模块接口,也就是获取模块对象
var router = express.Router();//创建路由实例
//调用mysql模块
const mysql = require("mysql");
//配置本机mysql连接基本信息
let connectInfo = mysql.createConnection({
host: '', // 刚刚在腾讯云开的外网,此链接一定不能让其他人看到
port: 29905,
user: '', // 刚刚在腾讯云设置的用户名,记住不要泄露
password: '', // 刚刚在腾讯云设置的密码,记住不要泄露
database: '' // 刚刚在腾讯云创建的数据库
})
//数据库建立连接
connectInfo.connect();
// 增删改查
// 关闭数据库
connection.end();
一般泄露的情况会出现在上传到github的这个过程中,在把代码推到公开仓库时一定要注意!
增
const sql = 'INSERT INTO `test1` (`id`, `name`, `add`) VALUES (?,?,?);'
const data = [5, 'name5', 'add5']
connectInfo.query(sql, data, (error, result, fields) => {
if (error) {
console.log('[query]-:' + error)
} else {
console.log(result);
}
});
删
const sql = 'delete from test1 where id= ?'
const data = 5
connectInfo.query(sql, data, (error, result, fields) => {
if (error) {
console.log('[query]-:' + error)
} else {
console.log(result)
}
})
改
const sql = 'update `test1` set `name`= ? , `add`= ? where `id`= ?'
const data = ['name5new', 'add5new', 5]
connectInfo.query(sql, data, (error, result, fields) => {
if (error) {
console.log('[query]-:' + error)
} else {
console.log(result)
}
})
查
const sql = 'select * from `test1` where `name`= ? and `id`= ?'
const data = ['name5', 5]
connectInfo.query(sql, data, (error, result, fields) => {
if (error) {
console.log('[query]-:' + error)
} else {
console.log(result)
}
})
code
参考链接
node + express + mysql实现简单的增删查改
Node.js+Express+Mysql 实现增删改查
《使用nodejs连接mysql数据库》