【Nodejs博客项目开发】之原生nodejs实现博客系统(三)
一、nodejs操作Mysql
1、测试demo
npm init -y
初始化项目npm i mysql --save
安装mysql
- 用nodejs操作mysql
const mysql = require('mysql')
// 创建连接对象
const con = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'qybsjct',
port: '3306',
database: 'myblog'
})
// 开始连接
con.connect()
// 执行sql语句
const sql = "select * from users"
con.query(sql, (err, result) => {
if (err) {
console.log(err)
return
}
console.log(result)
})
// 关闭连接
con.end()
注意:如果你在这运行报错是
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
解决方案:在mysql客户端中执行
alter user 'root'@'localhost' identified with mysql_native_password by 'qybsjct';
和flush privileges;
(qybsjct是我的密码)
然后,nodejs连接mysql成功:
//从数据库中获取到的数据:
[
RowDataPacket {
id: 1,
username: 'zhangsan',
password: '123',
realname: '张三'
},
RowDataPacket {
id: 2,
username: 'lisi',
password: '123',
realname: '李四'
}
]
如果你把sql语句换成:const sql = "update users set realname='李四2' where username='lisi';"
更新表的时候会返回什么?
在后续博客操作的时候就是基于这里的数据来完成
如果你把sql语句换成:insert into blogs(title,content,createtime,author) values('标题C','内容C',1603328418920,'zhangsan')"
插入数据的时候会返回什么?
2、在node博客项目中搭建mysql环境
第一步
首先在项目中npm i mysql --save
安装mysql,然后安装npm install --save-dev cross-env
,通过npm run dev
开启程序
第二步
在项目中的src
文件下创建conf文件
跟db文件
,在conf文件中创建db.js
,在db文件中创建mysql.js
-- src
-- conf
db.js //数据库环境参数设置
-- db
mysql.js //nodejs连接myql
第三步
db.js
const env = process.env.NODE_ENV //环境参数
// 配置
let MYSQL_CONF
// 开发环境下的
if (env === 'dev') {
MYSQL_CONF = {
host: 'localhost',
user: 'root',
password: 'qybsjct',
port: '3306',
database: 'myblog'
}
}
// 线上的(现在只不过是没有具体区别线上线下)
if (env === 'production') {
MYSQL_CONF = {
host: 'localhost',
user: 'root',
password: 'qybsjct',
port: '3306',
database: 'myblog'
<