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),暴露连接池对象
然后可以请求接口获取数据
标签:Node,about,err,res,express,js,SQL,路由器 来源: https://www.cnblogs.com/meirongliu/p/16701058.html