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

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