NodeJs连接MySQL查询数据

轻鸟评职场技能 2024-05-14 05:27:31

工程目录:

执行命令:

npm init -y

新建database.js

执行命令:

npm -i mysql2import mysql from 'mysql2';import dotenv from 'dotenv';dotenv.config();const pool = mysql.createPool({ host: process.env.MYSQL_HOST, user: process.env.MYSQL_USER, password: process.env.MYSQL_PASSWORD, database: process.env.MYSQL_DATABASE}).promise();export async function getSysDeptList() { const [rows] = await pool.query('SELECT * FROM sys_dept'); return rows;}export async function getSysDept(id){ const [rows] = await pool.query(` SELECT * FROM sys_dept where id = ? `, [id]); return rows;}export async function addSysDept(dept_name, dept_level, seq, remark, parent_id, operator, operate_time, operate_ip) { const [result] = await pool.query(` INSERT INTO sys_dept (dept_name, dept_level, seq, remark, parent_id, operator, operate_time, operate_ip) VALUES (?, ?, ?, ?, ?, ?, ?, ?) `, [dept_name, dept_level, seq, remark, parent_id, operator, operate_time, operate_ip]); const id = result.insertId; // 新增的id return getSysDept(id);}//const sysDeptList = await getSysDeptList();//const sysDept = await getSysDept(1);//const createSysDept = await addSysDept('前端开发', '0.2', 2, '技术部', 1, 'system', '20240512203500','127.0.0.1'); //console.log(sysDeptList);//console.log(sysDept);//console.log(createSysDept);

执行命令:

npm i dotenv

新建.env文件

MYSQL_HOST='localhost'MYSQL_USER='root'MYSQL_PASSWORD='root'MYSQL_DATABASE='rbca_db'

执行命令:

npm install “express@>=5.5.0-beta.1” --save

新建app.js

import express from 'express'import {getSysDeptList, getSysDept, addSysDept} from './database.js'const app = express()app.use(express.json())app.get("/sysDept", async (req, res) => { const sysDeptList = await getSysDeptList() res.send(sysDeptList)})app.get("/sysDept/:id", async (req, res) => { const sysDept = await getSysDept(req.params.id) res.send(sysDept)})app.post("/sysDept", async (req, res) => { const {dept_name, dept_level, seq, remark, parent_id, operator, operate_time, operate_ip} = req.body const addSysDept = await addSysDept(dept_name, dept_level, seq, remark, parent_id, operator, operate_time, operate_ip) res.status(201).send(addSysDept)})app.use((err, req, res, next) => { console.error(err.stack) res.status(err.status || 500).send(err.message || 'Internal server error.')})app.listen(8080, () => { console.log('Server is running on prot 8080')})

执行命令:

npm i -D nodemon

修改package.json的scripts

{ "name": "nodejs_demo", "version": "1.0.0", "description": "", "type": "module", "main": "database.js", "scripts": { "dev": "npx nodemon app.js" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "dotenv": "^16.4.5", "express": "^4.19.2", "mysql2": "^3.9.7" }, "devDependencies": { "nodemon": "^3.1.0" }}

启动命令:

npm run dev

0 阅读:27