web基础·Express的Router、use及method(get/post)

express作为第三方模块,可以简化我们的很多操作。例如:在创建服务器方面:

通过http创建服务器

const http = require('http');
const cpp = http.createServer();

通过express创建服务器

const express=require('express');
const app=express();

只看创建服务器好像不是那么明显,但是express3.0为我们提供了get和post方法;express4.0中更是为我们提供了use方法。再例如:在为服务器对象添加请求事件上:

//引入url模块来,利用parse方法对请求地址解析为对象格式
const url=require('url');

app.on('request',(req,res)=>{
   //需要判断提交信息的方式是post还是get
   const method=req.method;

   //利用对象解构对所需要的请求路径等信息进行解构提取
   //当然咯,如果只请求地址,不携带请求数据,那么req.url的值和下面pathname的值是一样的
   //也就不引入url来做地址解析,把下面判断中的pathname都换成req.url就可以了
   //但是携带数据后,req.url中就包含了请求数据,所以也就得做解构提取请求地址了
   const {pathname}=url.parse(req.url);

   //对请求方式进行判断,再对请求路径进行判断
   if(method=='GET'){
       if(pathname=='/list'){
           //省略任务
       }else if(pathname=='/add'){
           //省略任务
       }
   }else if(method=='POST'){
       if(pathname=='/add'){
           //省略任务
       }else if(pathname=='/modify'){
           //省略任务
       }
   }
})

app.listen(3000);

使用express来对相应的请求进行判断响应时:

const express=require('express');
const app=express();

app.get('/list',(req,res)=>{
    //省略任务
})

app.get('/add',(req,res)=>{
    //省略任务
})

app.post('/add',(req,res)=>{
    //省略任务
})

app.post('/modify',(req,res)=>{
    //省略任务
})

app.listen(3000);

这样一看就很简洁了,express对象存在get和post方法,这样也就设定了请求方式,不需要对请求方式进行判断。

Express4.0中出现了Router,可以建立Router对象来设定不同的响应

const express=require('express');
const router=express.Router();
const app=express();

router.get('/demo1',(req,res)=>{
   res.send('demo1页面');
})

router.get('/demo2',(req,res)=>{
   res.send('demo2页面');
})

app.use('/DEMO',router);
//当地址栏访问/DEMO/demo1时显示:demo1页面
//当地址栏访问/DEMO/demo2时显示:demo2页面

app.listen(3000);

由此可见,可以通过改变use方法可以传入两个参数:第一个是根目录;第二个是路有对象

当我们需要实现不同功能页面时,

可以建立不同的Router对象,以不同的路径套用到use应用程式中

可以发现app.use的第二个参数可以传入路由对象,那么get或post呢?

app.get('/DEMO/demo1',router);
//报错,找不到,404

同理,post的第二个参数也不可以传入Router路由对象

app.use(path,callback)          callback既可以是router对象也可以是函数

app.get(path,callback)           callback只可以是函数


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值