express mysql封装
时间: 2023-10-13 12:23:15 浏览: 125
Express是一个流行的Node.js web应用程序框架,而MySQL是一个关系型数据库管理系统。在Express中使用MySQL,我们通常需要编写一些重复的代码来连接数据库、查询数据、执行事务等等。为了避免这些重复的代码,我们可以封装一个MySQL模块,使其可以在Express应用程序中重复使用。
以下是一个简单的MySQL封装模块示例:
```javascript
const mysql = require('mysql');
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: '',
database: 'test'
});
function query(sql, values) {
return new Promise((resolve, reject) => {
pool.getConnection((err, connection) => {
if (err) {
reject(err);
} else {
connection.query(sql, values, (err, rows) => {
if (err) {
reject(err);
} else {
resolve(rows);
}
connection.release();
});
}
});
});
}
module.exports = {
query
};
```
在这个例子中,我们使用了MySQL模块来创建一个连接池,并使用Promise封装了查询方法。这个方法接受一个SQL查询语句和值的数组作为参数,并返回一个Promise对象,该对象在查询完成后解析为查询结果或拒绝为错误。
我们可以将这个模块导入我们的Express应用程序,并在需要的地方调用查询方法。例如:
```javascript
const express = require('express');
const mysql = require('./mysql');
const app = express();
app.get('/users', async (req, res, next) => {
try {
const users = await mysql.query('SELECT * FROM users');
res.json(users);
} catch (err) {
next(err);
}
});
app.listen(3000, () => {
console.log('Server started on port 3000');
});
```
在这个例子中,我们使用Express创建了一个简单的API端点,该端点从数据库中检索所有用户并将其作为JSON响应发送回客户端。我们使用了async/await语法来处理异步查询,并使用try/catch块来捕获任何错误并将其传递给Express的错误处理程序。
这只是一个简单的MySQL封装示例,你可以根据你的实际需求进行修改和扩展。
阅读全文