首页
Search
1
剑侠账本
351 阅读
2
2024最好用的虚拟卡 VISA
320 阅读
3
使用vue3及Echarts插件实现Github代码热力图
318 阅读
4
Mac 开机自动执行 Shll 脚本
253 阅读
5
Nginx配置后请求报404的解决思路
194 阅读
Vue
React
Nodejs
小程序
工具
其他
随笔
登录
Search
标签搜索
Vue
Shll
vue3
echarts
ts
typescript
eventbus
Visa
Nginx
Nodejs
Aoki
累计撰写
10
篇文章
累计收到
11
条评论
首页
栏目
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日
181 阅读
0 评论
0 点赞