T-Node.js基础-day04-Express框架

文章目录

Express框架

  • 基于Node.js平台的,快速、开放、极简的web开发框架
  • express中文官网
  • 下载安装:npm install express
    //引入第三方的模块express
    const express=require('express');
    //创建web服务器
    const app=express();
    //设置端口
    app.listen(8080);
    
  1. 路由
    浏览器向web服务器发请求,web服务器根据特定的请求URL和请求的方法做出的响应
    • res:响应对象
      res.send():设置响应内容并发送
      res.redirect():响应的重定向,会跳转到另一个URL
      res.sendFile():响应文件,需要用到绝对路径,_dirname
      //路由
      //请求的方法:get
      //参数1:请求的URL:/login   
      //参数2:通过回调函数做出响应
      app.get('/login',(req,res)=>{
          //req和res和http模块下的req和res不一样,功能更加强大
          //req请求的对象
          //res响应的对象
          //响应内容并发送
          //res.send('<h2>这是登录的网页</h2>');
          //响应的重定向(跳转)
          //res.redirect('http://www.baidu.cn');
          //响应文件
          res.sendFile(__dirname+'/1.html');
      });
      
    • req:请求对象
      req.method:请求的方法
      req.url:请求的URL
      req.query:将查询字符串解析为对象
      //练习2:创建web服务器,浏览器端获取搜索的页面,服务器端创建对应的路由(get /serach),响应文件serach.html
      //优点:速度快,缺点:数据不安全
      //路由,请求方法,get  /search
      app.get('/search',(req,res)=>{
          //响应文件
          res.sendFile(__dirname+'/03_search.html');
      });
      //根据表单的请求创建对应的路由(get  /mysearch),响应’这是所有搜索的数据‘
      app.get('/mysearch',(req,res)=>{
          //获取传递的数据
          //req.query将查询字符串解析为对象
          //console.log( req.query );
          //keyword是html中input的name
          res.send('这是所有搜索的数据:'+req.query.keyword);
      });
      
      req.params:获取路由传参的数据,并解析为对象
      //路由传参
      //练习:创建路由(get  /package),响应“这是包的详细介绍:”
      //:pname设置形参,用于接收实参传递的数据
      app.get('/package/:pname',(req,res)=>{
         //console.log(req.params);  //panme:'参数值'
         //获取路由传参的数据req.params
          res.send('这是包的详细介绍:'+req.params.pname);
      });
      
      在这里插入图片描述
      练习1:创建路由
      请求方法:get请求的URL:/idnex,响应’<h1>这是首页</h1>’
      请求方法:get请求的URL:/,跳转到’/index’
      练习2:创建web服务器,浏览器端获取搜索的页面,服务器端创建对应的路由(get /serach),响应文件serach.html
      练习3:创建购物车的路由(get /shopping),传递商品的编号lid和价格price,在路由中获取数据,并响应到浏览器端’编号:xxx, 价格:xxx’
      练习4:创建web服务器,浏览器端获取登录的页面,创建路由(get /login),响应文件login.html,点击提交,再次向服务器发请求(post /mylogin),根据表单请求创建对应路由,响应登录成功
  2. 路由器
    把同一个模块下的所有路由单独的写到一个文件下,给URL添加统一的前缀。
    创建路由器
    //文件名:user.js
    //路由器文件
    //1.引入express,路由器是express下的一个功能
    const express=require('express');
    //2.创建路由器
    const router=express.Router();
    //3.在路由器下添加路由
    //获取用户列表路由(get /list)
    router.get('/list',function(req,res){
      res.send('这是用户列表');
    });
    //4.导出路由器对象,供web服务器使用
    module.exports=router;
    
    在服务器下引入并挂载
    //文件名:app.js
    const express=require('express');
    //引入路由器模块
    const userRouter=require('./user.js');
    //console.log(userRouter);
    //创建web服务器
    const app=express();
    app.listen(8080);
    //把路由器引入并挂载到服务器下
    //参数1:给路由中URL添加的前缀 访问形式  /user/list
    //参数2:要挂载的路由器
    app.use( '/user',userRouter );
    

练习:创建商品路由器product.js,并添加路由(get /list),在web服务器下引入并挂载,添加前缀/product

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章