环境准备:
1、Nodejs环境 (我的node版本v20.11.0 npm 版本:v9.8.1)
项目结构:
有用的就几个文件,圈出来了
代码如下:
user.js
let db = require('../db/index')
exports.get = (req, res) => {
console.log(db)
var sql = 'select * from app_userinfo'
db.query(sql, (err, data) => {
if(err) {
return res.send('错误:' + err.message)
}
res.send(data)
})
}
db文件夹下的demo.js
let mysql = require('mysql')
// let db = mysql.createPool({
// host: '127.0.0.1', //数据库IP地址
// user: 'root', //数据库登录账号
// password: '111111', //数据库登录密码
// database: 'djanjo' //要操作的数据库
// })
// module.exports = db
const con =mysql.createConnection({
host:'localhost',
user: 'root',
password: '123456',
port: '3306',
database: 'djanjo'
})
con.connect()
// 执行sql语句
const sql = 'select * from app_userinfo;'
con.query(sql, (err, res) => {
if(err) {
console.log(err)
return
}
console.log(res)
})
//关闭连接
con.end()
de文件夹下的index.js
const mysql = require('mysql')
// 连接池配置信息
const pool = mysql.createPool({
connectionLimit: 10, // 连接池最大连接数
host: 'localhost',
user: 'root',
password: '123456',
port: '3306',
database: 'djanjo'
})
function conMysql(sql) {
return new Promise((resolve, reject) => {
// 从连接池中获取连接
pool.getConnection(function (err, connection) {
if (err) {
reject(err)
return
}
// 使用连接执行查询操作
connection.query(sql, (err, result) => {
// 释放连接
connection.release()
if (err) {
reject(err)
return
}
let res = JSON.parse(JSON.stringify(result))
resolve(res)
})
})
})
}
// 导出 conMysql 函数
module.exports = {
conMysql
}
app.js
const express = require('express')
const app = express()
const cors = require('cors') //解决跨域问题
app.use(cors())
const bodyParser = require('body-parser')
const multiparty = require('connect-multiparty')
// 处理 x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: true }))
// 处理 mutipart/form-data
app.use(multiparty())
// 处理 application/json
app.use(bodyParser.json())
// 导入连接数据库的函数
const { conMysql } = require('./db/index')
// 创建统一的返回报文对象
class Response {
constructor(isSucceed, msg, code, data) {
this.isSucceed = isSucceed;
this.msg = msg;
this.code = code;
this.data = data;
}
}
// 一个简单的测试接口
app.get('/test', (req, res) => {
res.send('测试用的接口')
})
// 一个简单的接口,查询数据库中的信息
app.get('/getUser', (req, res) => {
let sql = 'select * from app_userinfo'
conMysql(sql).then(result => {
res.send(result)
}).catch(error => {
console.error('查询数据库失败:', error)
res.status(500).send(new Response(false, '查询数据库失败', 500, null))
})
})
// 监听node服务器的端口号
app.listen(3000, () => {
console.log('恭喜你,服务器启动成功')
})
然后进入appjs路径下,运行node app.js
获取数据成功
项目资料滴滴私信。