Node.js的数据库操作

Posted by 陈陈君 on 2021-02-01
Estimated Reading Time 2 Minutes
Words 476 In Total
Viewed Times

自从 Node.js 的出现,JavaScript 也可以运行在服务器端中,数据库连接在 Node.js 中实现较为简单,也容易上手。下面以 MySQL 的操作为例。

MySQL


首先通过 Node.js 的 npm 包管理器安装 mysql 的驱动依赖

1
npm install mysql

从 js 中引入 mysql 驱动对象并存入在一个变量中。然后通过 createConnection 方法来配置数据库信息,然后连接数据库。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 导入依赖模块
var mysql = require("mysql");
// 创建mysql对象
var connection = mysql.createConnection({
// ip或地址
host: "127.0.0.1",
// 用户名
user: "root",
// mysql端口
port: 3306,
// 密码
password: "123456",
// 数据库
database: "db1"
});
// 连接对象
connection.connect();

如果要查询数据库数据并返回

1
2
3
4
5
6
7
8
9
10
// 查询数据库-user表并返回结果
connection.query("select * from user",function(error,results,fields){
if(error)
console.log(error);
else
console.log("查询成功。");
console.log("results = ",results);
});
//连接结束
connection.end();

完整代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 导入依赖模块
var mysql = require("mysql");
// 创建mysql对象
var connection = mysql.createConnection({
// ip或地址
host: "127.0.0.1",
// 用户名
user: "root",
// mysql端口
port: 3306,
// 密码
password: "123456",
// 数据库
database: "db1"
});
// 连接对象
connection.connect();
// 查询数据库-user表并返回结果
connection.query("select * from user",function(error,results,fields){
if(error)
console.log(error);
else
console.log("查询成功。");
console.log("results = ",results);
});
//连接结束
connection.end();

假设有一个 user 表如下 :

id name
1 陈陈菌
2 小红
3 小白

results[0] 代表第一组数据 (1) (陈陈菌)
如果只想要取到陈陈菌,results[0].name 即可。

如何删和改

数据库对象的 query() 方法中可使用 sql 语句,如果想查询和修改等其他操作只需要写对应的 sql 就行。

新版MySQL可能会出现的问题

如果出现错误

1
ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

进到数据库中

1
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';

即可解决。