node.js mysql简单封装
1.node.js简单封装mysql模块,首先,我们需要下载mysql模块,使用如下命令:
npm install mysql --save
2.在项目目录下创建一个数据库配置文件db
3.在config.js文件下引入mysql模块,实现最简单的mysql封装
const mysql = require('mysql');//引入mysql module.exports={ //公开该模块(以便其它模块使用) config:{ host:'127.0.0.1',//连接数据库的地址。(默认:localhost) port:3306,//连接地址对应的端口。(默认:3306) user:'root',//mysql的连接用户名 password:'xxxxx',//对应用户的密码 dataBase:'$_doctors' //所需要连接的数据库的名称 } connect(sql,params,cb){ //connect('sql语句',[参数],回调函数(err,data){}) let conn = mysql.creatConnection(this.config);//1。创建数据库 conn.connect();//2.连接数据库 conn.query(sql,params,cb);//3.执行sql语句,第二个参数是一个数据格式,数组元素的先后顺序,对应sql语句中的?的顺序 conn.end();//4。关闭数据库 } }
注意:一般来说,sql生成时,不要写成字符串拼接的方式; 容易导致sql注入的漏洞产生,黑客容易获取到最高管理员权限。应该使用?来做占位符号:
let sql = 'select * from t_user where u_name = ? and u_password = ?';
4.在对应的路由接口中调用封装好的数据库实现数据库功能,例子如下:
const express = require('express');//引入express模块 const _router=express.Router();//引入路由 const db=reuire('../db/config');//引入封装好的数据库 moudle.exports=_router;//公开路由模块 //查询医生信息路由接口 _router.route('/searchDoctor') .post((req,res)=>{ let {d_name,d_sex,j_id}=req.body; let sql,params,cb; sql='SELECT * FROM doctorinfos d,doctorjoins j,hosiptalclass h WHERE h.hc_id=d.hc_id AND d.j_id=j.j_id and d_name=? and d_sex=? and d.j_id=?' //sql查询语句 params=[d_name,d_sex,j_id]; //需要的参数,分别对应三个问号? cb=(err,resultData)=>{ //回调函数,成功或者失败返回给前端的数据 console.log(err); console.log(resultData); if(err ==null){ res.json({ code:200, msg:'查询成功', data:resultData }) }else{ res.json({ code:4001, msg:'查询失败', data:[] }) } } db.connect(sql,params,cb);//调用封装好的数据库,完成数据库相关操作 })