zoukankan      html  css  js  c++  java
  • Express路由

          1、 路由器的配置分为两个,一个是需要做页面的渲染,一个是需要直接进行对数据进行输出,对于路由器的配置需要对路由器在公共的app.js进行注册与注入才能生效,否则是不能生效的。配置时根据不同的应用场景进行配置

     1 //数据注入点的app.js
     2 //定义路由地址
     3 let indexRouter = require('./routes/vip-course');
     4 //注入路由进行使用
     5 app.use('/vip-course', indexRouter);
     6 
     7 /*
     8 路由配置页面(对于'/'的配置,设置默认页)
     9 类似于:http://localhost:3000/vip-course
    10 */
    11 router.get('/',(req,res,next)=>{
    12     /*
    13      send()方法与render() 不能同时存在,如果同时存在则会按照前后顺序进行对应的覆盖
    14     */
    15     //默认的页面直接展示
    16     res.send("1111");  
    17     
    18     /*
    19     页面的渲染,ctx为一个对象参数,ctx={};
    20     {
    21     title:"标题",//
    22     json:[],//json数组
    23     jdata={}//对象
    24     ...
    25     }
    26     "index"代表是设置的默认页面
    27     */
    28     res.render("index",ctx);    
    29 })

    2、路由的传参

         在路由进行配置需要进行页面的渲染时,需要用到的传参主要有三种:

     1 1 //路由进行Url的传参 http://localhost:3000/vip-course/add?a=b
     2  2 router.get('/:course', (req, res, next)=> {
     3  3     //获取到访问链接地址中的 add 参数
     4  4     let add=req.params.course;
     5  5     //获取到的是跟在链接地址后面的参数a的值,根据传入不同的名称进行不同的取数即可
     6  6     let a=req.query.a
     7  7     res.render('vip-course/' + req.params.course);
     8  8 });
     9  9 
    10 10 //路由进行post请求进行传参时,直接通过body进行传参,一般用于submit的表单提交,或ajax的数据提交
    11 11 router.post('/:course', (req, res, next)=> {
    12 12     let data=req.body;//获取提交的body参数数据
    13 13     res.render('vip-course/' + req.params.course);
    14 14 });

    3、错误处理

          为了避免一些黄页的出现,或者直接将一些错误抛出来造成了我们代码的安全性不高,所以我们可以进行一些错误的自定义化处理

     1 /*
     2 在访问页面时,发现该页面不存在,或者是地址输入错误时
     3 http://localhost:3000/data
     4 */
     5 router.get('/:datas', function(req, res, next) {
     6    //接收到的参数是否为index 
     7   if (req.params.datas=="index"){
     8       res.render('index');
     9   }else{
    10    //输入的页面不是index时,或者不存在的一个页面时,需要直接进行自定义错误的抛出
    11    next(new Error("找不到页面了"));
    12   }
    13 });
    14 
    15 /*
    16 自定义错误信息
    17 */
    18 //引入一个http-errors的包
    19 var createError = require('http-errors');
    20 router.get('/:datas', function(req, res, next) {
    21   if (req.params.datas=="index"){
    22       res.render('index');
    23   }else{
    24       //创建一个错误代码为404,错误信息为 找不到页面了 的错误对象,供页面去显示
    25       next(createError(404, '找不到页面了'));//状态码404
    26   }
    27 });

           在发现一些错误无法进行满足时,或者对于一些根本无需去理会的错误,应该让他自己去适应和查找对应的界面时,或者我们对于所有的错误都统一去一个错误界面时,我们需要进行页面的重定向

    router.get('/:datas', function(req, res, next) {
      if (req.params.datas=="index"){
          res.render('index');
      }else{
          //直接进行页面的重定向跳转
          res.redirect('Error')
      }
    });
    目前只是自己在初学Express时,所做的一些总结,希望对于一些也在跟我一样刚学习的童鞋会有用,谢谢!
  • 相关阅读:
    02 序列模型问题
    02 序列模型问题
    04 电路交换
    31 路由算法.md
    NumPy入门教程
    有穷自动机
    上下文无关语法
    基本乐理
    正则表达式
    【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译(转)
  • 原文地址:https://www.cnblogs.com/zixiwang/p/9942554.html
Copyright © 2011-2022 走看看