ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

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

2022-09-16 20:02:17  阅读:365  来源: 互联网

标签:Node about err res express js 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),暴露连接池对象

 

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

 

 

 

 

 

 

 

 

标签:Node,about,err,res,express,js,SQL,路由器
来源: https://www.cnblogs.com/meirongliu/p/16701058.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有