首页
Search
1
剑侠账本
146 阅读
2
2024最好用的虚拟卡 VISA
19 阅读
3
Mac 开机自动执行 Shll 脚本
16 阅读
4
关于Html使用CDN引入ElementUI-Plus与Vue3(组合式)不生效解决方法
14 阅读
5
使用vue3及Echarts插件实现Github代码热力图
13 阅读
Vue
React
Nodejs
小程序
工具
其他
随笔
登录
Search
标签搜索
Vue
Shll
vue3
echarts
ts
typescript
eventbus
Visa
Nginx
Nodejs
Aoki
累计撰写
10
篇文章
累计收到
8
条评论
首页
栏目
Vue
React
Nodejs
小程序
工具
其他
随笔
页面
搜索到
1
篇与
的结果
2024-12-11
Nodejs连接数据库-1
使用Node.js连接数据库并创建一个API接口,前端可以通过HTTP请求访问后端的数据。我们可以使用Express框架来创建REST API接口,同时使用MySQL或MongoDB等数据库。以下是如何用Node.js编写一个接口并实现数据库连接和API请求的步骤。项目结构app.js: 主应用文件,配置Express和API路由routes/databaseRoutes.js: 定义API路由controllers/databaseController.js: 控制器层,包含具体的数据库操作config/db.js: 配置数据库连接步骤详解Step 1: 初始化项目并安装依赖初始化一个Node.js项目,并安装需要的依赖:mkdir node-api-demo cd node-api-demo npm init -y npm install express mysql2 dotenvexpress:用于创建REST APImysql2:MySQL数据库的Node.js驱动dotenv:用于管理环境变量Step 2: 配置数据库连接在项目根目录创建一个.env文件,用于存放数据库连接信息:.envDB_HOST=localhost DB_USER=your_username DB_PASSWORD=your_password DB_NAME=your_database然后,在config/db.js中创建数据库连接:config/db.jsrequire('dotenv').config(); const mysql = require('mysql2'); // 创建数据库连接池 const pool = mysql.createPool({ host: process.env.DB_HOST, user: process.env.DB_USER, password: process.env.DB_PASSWORD, database: process.env.DB_NAME }); module.exports = pool.promise();Step 3: 创建数据库控制器在controllers目录中创建databaseController.js文件,定义获取、添加、删除数据库记录的方法。controllers/databaseController.jsconst db = require('../config/db'); // 获取所有记录 exports.getAllRecords = async (req, res) => { try { const [rows] = await db.query('SELECT * FROM records'); res.json(rows); } catch (err) { res.status(500).json({ error: '数据库查询出错' }); } }; // 根据ID获取记录 exports.getRecordById = async (req, res) => { const id = req.params.id; try { const [rows] = await db.query('SELECT * FROM records WHERE id = ?', [id]); if (rows.length === 0) { return res.status(404).json({ error: '记录未找到' }); } res.json(rows[0]); } catch (err) { res.status(500).json({ error: '数据库查询出错' }); } }; // 添加新记录 exports.createRecord = async (req, res) => { const { name, value } = req.body; try { const [result] = await db.query('INSERT INTO records (name, value) VALUES (?, ?)', [name, value]); res.status(201).json({ id: result.insertId, name, value }); } catch (err) { res.status(500).json({ error: '数据库插入出错' }); } }; // 根据ID删除记录 exports.deleteRecord = async (req, res) => { const id = req.params.id; try { const [result] = await db.query('DELETE FROM records WHERE id = ?', [id]); if (result.affectedRows === 0) { return res.status(404).json({ error: '记录未找到' }); } res.json({ message: '记录已删除' }); } catch (err) { res.status(500).json({ error: '数据库删除出错' }); } };
2024年12月11日
3 阅读
0 评论
0 点赞