环境准备:
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
在这里插入图片描述
获取数据成功
在这里插入图片描述
项目资料滴滴私信。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐