❤Nodejs 第七章(操作本地数据库接口优化)
喜欢的给个star吧
【4月更文挑战第7天】
之前我们采用的都是这种createConnection方式,上一章节我们讲了createConnection和createPool的区别和联系,接下来我们也采用createPool这种更加高效的方式,接下来我们就使用这种方式优化我们的数据库接口。
之前我们连接数据库采用的这种方式:
现在我们更改为高并发createPool方式,总得来说只需要把connection更改为createPool方式即可
1、查询方式更改为createPool方式
app.get('/api/user', (req, res) => {
const { name, age,sex } = req.query;
const values =[name, age,sex];
let query = 'SELECT * FROM user';
// 构建查询条件
const params = [];
if (name !== undefined&&name !== ''&&name !== null) {
query += ' WHERE name = ?';
params.push(name);
}
if (age !== undefined&&age !== ''&&age !== null) {
query += params.length ? ' AND' : ' WHERE';
query += ' age = ?';
params.push(age);
}
// 查询数据库并返回数据
connectionpool.query(query,params,(err, results) => {
if (err) {
console.error('Error querying database:', err);
res.status(500).json({ error: 'Internal server error' });
return;
}
res.json({
code:'200',
data:results,
});
});
});
2、新增用户post方法更改为我们的连接池方式
// 新增用户 POST 请求处理程序
app.post('/api/user', (req, res) => {
const { name, age } = req.body; // 从请求体中获取数据
const values = [name, age];
const insertSql = `INSERT INTO user (name, age) VALUES (?, ?)`;
connectionpool.query(insertSql, values, (err, results) => {
if (err) {
console.error('Error querying database:', err);
res.status(500).json({ error: 'Internal server error' });
return;
}
res.json({
code:'200',
data:results,
});
});
});
3、获取用户详情
// 获取用户详情 3
app.get('/api/user/:id', (req, res) => {
const { id } = req.params;
const values =[id];
let query = 'SELECT * FROM user WHERE id = ?';
connectionpool.query(query,values,(err, results) => {
if (err) {
console.error('Error querying database:', err);
res.status(500).json({ error: 'Internal server error' });
return;
}
res.json({
code:'200',
data:results?results[0]:{},
});
});
});
4、put修改方法的更改
app.put('/api/user', (req, res) => {
// console.log(req.body);
const { name, age ,id} = req.body; // 从请求体中获取数据
const values = [name, age, id];
// 准备 SQL 插入语句
const sql = "UPDATE user SET name = ?, age = ? WHERE id = ?";
connectionpool.query(sql, values, (err, results) => {
// console.log(err,'err');
// console.log(results,'results');
if (err) {
console.error('Error querying database:', err);
res.status(500).json({ error: 'Internal server error' });
return;
}
res.json({
code:'200',
data:results,
});
});
});
5、删除用户delete方法的更改
// 删除用户数据 DELETE请求处理程序
app.delete('/api/user/:id', (req, res) => {
// const {id} = req.body; // 从请求体中获取数据
const id = req.params.id;
// console.log(id,'id');
const values = [id];
const sql = "DELETE FROM user WHERE id = ?";
connectionpool.query(sql, values, (err, results) => {
// console.log(err,'err');
// console.log(results,'results');
if (err) {
console.error('Error querying database:', err);
res.status(500).json({ error: 'Internal server error' });
return;
}
res.json({
code:'200',
data:results,
});
});
});
最后测试一下我们的增删改查以及我们的查询条件,没问题。高并发createPool方式更改ok!