Node搭建前端服务Mysql数据库交互一篇搞定 |
您所在的位置:网站首页 › nodejs作为后端怎么测试与前端的连接 › Node搭建前端服务Mysql数据库交互一篇搞定 |
目录 介绍 安装环境及数据准备 代码示例 mysql连接工具类 测试方法文件 单表总量查询 单表条件查询 新增数据 修改 删除 编辑 编辑 联表查询 联表过滤 搭配express服务搭建api使用 介绍在前端开发中,可以使用纯node前端进行服务搭建与mysql进行数据库的交互,这样可以省略掉后台开发的权重 安装环境及数据准备电脑需具备nodejs环境 安装必需模块 npm install mysql npm install mysql2 mysql和mysql2都是Node.js中的MySQL数据库驱动程序,但它们有一些区别和各自的优点。 区别: API:mysql2的API比mysql更简单,更易于使用,同时也支持更多的功能。 性能:mysql2相比mysql更快,因为它采用了更高效的协议和更好的连接池实现。 兼容性:mysql2兼容mysql,因此您可以在不需要更改代码的情况下将其替换为mysql。 优点: mysql的优点:mysql是一个稳定的和广泛使用的驱动程序,具有丰富的文档和社区支持。 mysql2的优点:mysql2具有更好的性能和更简单的API,还支持Promise和async/await等现代JavaScript功能。 这里以mysql2为例 本地数据库表准备 准备两张表进行测试
新建自定义一个js文件 const mysql = require('mysql2/promise'); module.exports = { // 数据库配置 config: { host: '127.0.0.1', port: '3306', user: 'root', password: '密码', database: '数据库名' }, // 连接数据库 使用数据库连接池方式连接 async sqlConnect(sql, sqlArr, callBack) { const connection = await mysql.createConnection({ host: this.config.host, port: this.config.port, user: this.config.user, password: this.config.password, database: this.config.database, authPlugins: { mysql_clear_password: () => () => Buffer.from(this.config.password + '\0') } }); try { console.log('数据库连接成功'); const [rows, fields] = await connection.execute(sql, sqlArr); callBack(null, rows); } catch (err) { console.log('数据库连接失败', err); callBack(err, null); } finally { await connection.end(); } } };这个文件写后基本不需要再动了 测试方法文件 单表总量查询测试:
或者使用模板语法动态拼接条件属性 排序分页等不再演示,直接拼接在sql后面即可 新增数据 ![]() ![]() 查询出的数据都是集合形式,所以可以使用集合来接收查询到的数据,然后使用集合的过滤规则等方法实现过滤筛选 一般在开发中可以使用express搭建前端服务,然后通过服务的接口访问数据库 重新写一版工具类 const mysql = require('mysql2/promise'); module.exports = { // 数据库配置 config: { host: '127.0.0.1', port: '3306', user: 'root', password: '密码', database: 'testmysql2' }, // 连接数据库 使用数据库连接池方式连接 async execute(sql, sqlParams) { const connection = await mysql.createConnection({ host: this.config.host, port: this.config.port, user: this.config.user, password: this.config.password, database: this.config.database }); try { console.log('数据库连接成功'); const [rows, fields] = await connection.execute(sql, sqlParams); return { success: true, data: rows }; } catch (err) { console.log('数据库连接失败', err); return { success: false, error: err }; } finally { await connection.end(); } } };//导入 express const express = require('express') //导入自定义路由 const router = require('./myRouter') //导入自定义测试mysql方法 const lianbiao = require('./tesymysql2/ceshi') //创建应用对象 const app = express(); //创建路由 app.get('/home', (req, res) => { // res.setHeader('content-type', 'text/html;charset=utf-8') // res.send('hello word 世界你a asda萨达好'); res.json({ name: "张飞", qun: '车骑将军' }) }); // 将相应路由绑定到 GET 请求上 app.get('/home/lianbiao/:data', async (req, res) => { try { const { data } = req.params; const result = await lianbiao.lianbiao(data); res.json({ success: true, result }); } catch (error) { res.json({ success: false, message: error.message }); } }); //应用自定义路由 app.use(router); //监听端口 启动服务 app.listen(9000, () => { console.log('服务已启动'); }) 测试: 访问9000/home 访问接口/home/lianbiao/:data apipost访问: 这样只有前端的服务接口就搭建好了(*^▽^*) ヾ(@^▽^@)ノ
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |