mysql模块和后端接口

1.mysql模块

  createPool( )   创建连接池

  query(SQL命令, 数组, 回调函数 )   执行SQL命令,数组保存用来过滤的数据,最后再去替换占位符,通过回调函数获取结果

  SQL注入

  select * from emp where 1;

  select * from emp where ename="tao" or "1";

  占位符(?):先将用户提供的值进行过滤,过滤完再替换位置。

  select* from emp where sex=?  and  salary>?  ,  [0, 8000]

2.后端接口

 接口:后端提供的动态资源(注册、登录、数据操作...)

 RESTful接口:是一种接口风格

 (1)URL

  员工资源

  http://127.0.0.1:8080/v1/emps     多个资源

                    版本号  资源名称(复数形式)

  http://127.0.0.1:8080/v1/emps/3     单个资源

                               编号

  用户资源

  http://127.0.0.1:8080/v1/users/login      对资源的操作方式 

  http://127.0.0.1:8080/v1/users/reg

 (2)请求的方法

  对资源的操作方式

  get     获取资源

  post    新建资源

  delete  删除资源

  put     修改资源

 (3)过滤数据

  针对于多个资源的操作

  http://127.0.0.1:8080/v1/emps?pno=1&count=10

  通过分页过滤数据              当前页码  每页的数据量

  http://127.0.0.1:8080/v1/emps?salary1=6000&salary2=8000

  过滤一组工资区间

 (4)返回结果

  格式为json,字符串形式的对象,属性名必须用双引号的形式,属性值如果是字符串必须用双引号

  包含状态码、消息、数据

  例如:用户登录的返回结果

   {"code": 200, "msg": "登录成功"}

  例如:获取用户的列表

   {"code":200, "msg":"获取成功", "data": [....]}

Node.js下,每一个路由就是一个接口

1.练习:编写文件03_app.js,使用express创建web服务器,添加路由(post  /v1/emps),用于插入一条员工数据,响应‘添加成功’。

2.练习:编写查找员工的接口(get  /v1/emps/编号),获取传递的编号,到数据库中查找编号对应的员工,最后响应 {code:200, msg:'查找成功', data: 数据}

const express=require('express');
const mysql=require('mysql');
//创建连接池对象
const pool=mysql.createPool({
  host:'127.0.0.1',
  port:'3306',
  user:'root',
  password:'',
  database:'tedu',
  connectionLimit:15
});
//创建WEB服务器
const app=express();
//设置端口
app.listen(8080,()=>{
  console.log('服务器创建成功');
});
//使用中间件将所有post请求的数据解析为对象
app.use( express.urlencoded({
  extended:false
}) );
//添加路由(post /v1/emps)
//接口地址:http://127.0.0.1:8080/v1/emps
//请求方法:post
app.post('/v1/emps',(req,res)=>{
  //获取post请求的数据
  console.log(req.body);
  //执行SQL命令,将对象插入到数据库tedu下的emp表中
  pool.query('insert into emp set ?',[req.body],(err,result)=>{
    if(err) throw err;
	console.log(result);
	//res.json()和res.send()作用相同,都可以将对象转为json
    res.send({code:200,msg:'员工添加成功'});
  });
});

//2练习

//查找员工路由(get /v1/emps/编号)
//接口地址:http://127.0.0.1:8080/v1/emps/3
//请求方法:get
app.get('/v1/emps/:eid',(req,res)=>{
  //获取路由传参的数据
  console.log(req.params);
  //执行SQL命令
  pool.query('select * from emp where eid=?',[req.params.eid],(err,result)=>{
    if(err) throw err;
	console.log(result);
	//把查询到的数据响应到客户端
	//查询的结果是数组,如果是空数组说明该员工不存在
	if(result.length===0){
	  res.send({code:201,msg:'员工不存在'});
	}else{
	  res.send({code:200,msg:'查找成功',data:result});
	}
  });
});

3.ApiPost  

 专门用于调试后端接口的工具,可以生成接口说明文档。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值