# server **Repository Path**: totodo/server ## Basic Information - **Project Name**: server - **Description**: kkdaxue 后端服务 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-23 - **Last Updated**: 2024-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # server ### 介绍 kkdaxue 后端服务 ### 软件架构 软件架构说明 ### 安装教程 1. npm i ### 使用说明 1. npm run dev ### 参与贡献 #### Nodejs V20.11 http://nodejs.org #### Express express 4.18.3 ``` npm i express ``` #### Mysql db 社区版本 5.5 Remote Server qcloud 43.142.34.49 ##### 安装使用 mysql2 基于node 的驱动 ``` npm i mysql2 ``` ##### 1.代码使用规范 使用 mysql2 包创建一个连接池,这样可以复用连接,提高效率: ```javascript const mysql = require('mysql2'); // 创建一个连接池 const pool = mysql.createPool({ host: 'localhost', // MySQL服务器地址 user: 'your_username', // MySQL用户名 database: 'your_db', // 要连接的数据库名 password: 'your_password', // MySQL密码 port: 3306 // MySQL服务器端口 }); ``` ##### 实现数据库操作 使用连接池进行数据库的 CRUD 操作(创建、读取、更新、删除): 连接池查询 ```javascript app.get('/find-users', (req, res) => { pool.query('SELECT * FROM users', (error, results, fields) => { if (error) throw error; res.json(results); }); }); ``` 连接池连接 ```javascript app.get('/find-user/:id', (req, res) => { pool.getConnection((err, connection) => { if (err) throw err; connection.query('SELECT * FROM users WHERE id = ?', [req.params.id], (error, results, fields) => { if (error) throw error; res.json(results); connection.release(); // 释放连接 }); }); }); ``` 错误处理 确保你的应用有适当的错误处理,以便在查询失败时能够通知用户: ```javascript pool.query('SELECT * FROM users', function (error, results, fields) { if (error) { res.status(500).send('Server error'); return; } res.json(results); }); ``` 启动服务器 最后,使用 listen 方法启动 Express 服务器: ```javascript const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Server running on port ${PORT}`); }); ``` * 注意事项 在生产环境中,应该使用更健壮的连接管理策略,比如设置连接超时和重连机制。 对于敏感信息如数据库密码,建议使用环境变量来存储,而不是直接写在代码中。 使用参数化查询可以防止 SQL 注入攻击。 通过这种方式,你可以在 Express 应用中使用 mysql2 来安全高效地与 MySQL 数据库进行交互。 ####