昨天又度过了一个足不出门的周末,在家里无聊刷剧近好几个小时,原本计划要把新看的书的reading-notes给整理好。果真一个人面对周末的大好时光,就会放肆起来。 好在趁着夜未深,在临睡前将之前关于服务器,路由器和剩下的添加路由的方法整理出来了。 所以,今天还是续接前一天的内容,在路由器中添加路由的几种方法。 首先,需要明确的是多个路由最好都添加到路由器中,因为路由器是存储和管理路由的容器,方便web服务器调用路由,这也是创建路由器的目的。 之前提到过路由的三要素——请求方法,请求URL和响应。由于请求的方法又分为三种,分别为get,post以及params(参数)三种,在路由中随着请求的数据也分为三种。
① get对应的请求数据的方法为: req.query 返回一个对象
② post对应的请求数据的方法为: req.body 返回一个对象
③ paras对应的请求数据的方法为:req.params 返回一个对象
由于请求方法的不同,所以在创建路由时,也是分为三种,它们分别是:
① get对应的路由方法:
router.get('/list',(req,res)=>{
var obj=req.query;//返回一个对象
console.log(obj);
res.send('用户列表');
});
② post对应的路由方法:
router.post('/reg',()=>{
var obj=req.body;//返回一个对象
console.log(obj);
res.send('用户注册');
});
③ params对应的路由方法:
//params为参数,其中参数为:之后的名称,访问形式为/detail/lid
router.get('/detail/:lid',(req,res)=>{
var obj=req.params;//返回一个对象
console.log(obj);
res.send('商品详情');
});
以上即是在路由器中创建路由的方法,如果需要在路由中添加MySQL的增删改查,还需要在路由器开始引入数据池即:
const pool=require(‘./pool.js’);
实现对数据库表的增删改查需要在路由中完成,具体的语法结构如下(以get方法为例,查询uid对应的数据):
router.get(‘/detail’,(req,res)=>{
var obj=req.query;
var $uid=obj.uid;
//验证uid是否为空
if(!$uid){
res.send({code:300,msg:’can not find’});
//阻止往后执行
return;
}
//查询uid对应的数据 语法结构为:pool.query(SQL语句,占位数组,回调函数)
pool.query(‘SELECT * FROM xz WHERE uid=?’,[$uid],(err,result)=>{
if(err) throw err;
//如果返回数组的长度大于0,说明找到用户,则响应数据到浏览器
//如果返回数组的长度小于0,说明没找到用户,响应一个对象
if(result.length>0){
res.send(result);
}else{
res.send({code:400,msg:’can not find’})
}
});
});
关于在数据库池进行SQL命令的增删改查,会留作今后几天重点回顾和整理,这也是在web服务器调用数据库服务器的关键。(006/300)