Node.js之mysql模块开启执行多个SQL命令

今天分享的内容是模块化思维 ,在项目中需要分类模块化对项目数据进行归类

 

 pool.js是mysql的连接池

routes文件夹里放路由器目录,里面可以放项目路由的小文件夹

app.js是web服务器

  1.在app.js下使用express创建web服务器,引入关于汉唐路由器(./routes/about.js),挂载路由器,添加前缀 /v1/about,设置端口全部过程如下

//引入express模块
const express=require('express')
//引入关于汉唐路由器模块
const aboutRouter=require('./routes/about.js')
//console.log(ur)
//创建WEB服务器
const app=express()

//设置端口
app.listen(3000,()=>{
    console.log('服务启动完工');
})
//将所有post传参转为对象(一定放在路由器的前边)
app.use(express.urlencoded({
    extended:true
}))
//挂载路由器,给路由添加前缀/v1/about
app.use('/v1/about',aboutRouter)

// 在所有路由器后面,添加错误处理中间件,拦截路由器中所有错误
app.use((err,req,res,next)=>{
    // err路由中传递过来的错误信息
    console.log(err);
    // 响应服务器端错误
    res.send({code:500,msg:'服务器端错误'})
})

  2.在about.js,创建路由器对象,添加路由(get /),暴露路由器对象,引入连接池模块( ../pool.js),执行SQL名称,到数据表ht_about中查询编号对应的数据

// 引入模块
const express = require('express')
//引入连接池模块
const pool = require('../pool.js')

//创建路由器对象
const router = express.Router()
// 添加路由
// 1. 关于汉唐( 公司简介1/董事长致辞2 )的接口 (get /info)
// 接口地址 :http://127.0.0.1:3000/v1/about/info
// 请求方法:get

// 获取params传递的参数
// 查询
router.get('/info/:aid', (req, res, next) => {
    var obj = req.params
    console.log(obj);
    // router.query('')
    // res.send('公司简介')
    // ht_about中查询编号对应数据
    pool.query('select * from ht_about where aid=?', [obj.aid], (err, r) => {
        if (err) {
            // 如果有错误,把错误交给下一个中间件
            // 阻止往后执行 return
            return next(err)
        }
        console.log(r);
        res.send({ code: 200, msg: '查询成功', date: r })
    })
})

// 公司大事件
router.get('/event', (req, res, next) => {
    var obj = req.body
    console.log(obj);
    pool.query('select * from ht_event where eid=?', [obj.eid], (err, r) => {
        if (err) {
            return next(err)
        }
        console.log(r);
        res.send({ code: 200, msg: '公司大事件', date: r })
    })
})

// 旗下公司
router.get('/member', (req, res, next) => {
    console.log(1);
    pool.query('select * from ht_member ',(err, r) => {
        if (err) {
            return next(err)
        }
        console.log(r);
        res.send({ code: 200, msg: '旗下公司', date: r })
    })

})
 // 暴露连接池对象
module.exports = router

3.在pool.js中,引入mysql模块,创建连接池对象(hantang),暴露连接池对象

 

 然后可以请求接口获取数据

 

 

 

 

 

 

 

 

posted @ 2022-09-16 19:40  荣姐  阅读(297)  评论(0编辑  收藏  举报