2 w Express-Routerオブジェクトの使用


ルーターとは Routeはどの要素を使用して分岐しますか。 Routerオブジェクトを使用して類似のオブジェクトをグループ化し、urlを管理します。


1.Routerの使用

  • 現在、//hiの2つのルートがあります.もし後でショッピングモールを建てたら、どのくらいのページが必要ですか?まずページを見てから計算しましょう.http://3.36.86.60:8888/
  • 1)最初の画面はログイン画面です.
    →2)会員入選画面もあるでしょう.
    →3)登録後にカタログページがあります.
    →4)1つの商品をクリックすると商品詳細ページがあります.
    →5)カートに入れた後、カートページもあります.クリックして購入しましょうか?→
    →6)支払いのために出荷情報を入力できるページがあります.
  • このサービスだけで少なくとも6ページが必要になります.実際には、サービスを作成すると、これらのページの数が急激に増加します.ではこのように1ページ増えるたびにindexはjsファイルにapp.~~を追加し続けます.これにより、1つのファイルにコードが多すぎて、管理がますます難しくなります.Expressでは、これらのオブジェクトを類似のパスにグループ化し、ファイルに分離できるようにするルータオブジェクトが用意されています.

    2. index.js

    app.get('/goods/list', (req, res) => {
      res.send('상품 목록 페이지')
    })
    
    app.get('/goods/detail', (req, res) => {
      res.send('상품 상세 페이지')
    })
    
    app.get('/user/login', (req, res) => {
      res.send('로그인 페이지')
    })
    
    app.get('/user/register', (req, res) => {
      res.send('회원가입 페이지')
    })
  • 子位に示すように4路線あります.
    まずカタログと商品詳細urlを見てみましょう.
    両方とも商品関連のページなのでurlのpathにはgoodsという共通の部分があります.
    似たような種類のページを同じルーターで結ぶと便利ですやってみようまず、現在のプロジェクトから新しいファイル
  • を追加します.

    3.ルーティング分離経路の共通経路/goods。



    < goods.js >
    var express = require('express');
    var router = express.Router();
     
    router.get('/list', function(req, res, next) {
      res.send('Router 상품 목록 페이지')
    });
    
    router.get('/detail', function(req, res, next) {
      res.send('Router 상품 상세 페이지')
    });
      
    module.exports = router;

    4. index.jsファイルを変更します。


  • // 기존 
    // app.get('/goods/list'...
    // app.get('/goods/detail'... 
    // 두가지 route 는 삭제합니다.
  • Routerオブジェクト化
    :/goodsパスが到着すると、後のmiddleWare goodsrouter処理(goodsrouterはpathの残りの後の部分を表示し、パスに従って処理します).
  • 1)Routerオブジェクト化
    const goodsRouter = require('./routes/goods');
    2)作成したRouterオブジェクトの使用
    app.use('/goods',goodsRouter);
  • 文字はここまでで、サーバを再起動します.その後、/goods/list経路で接続される.すると、新しい内容が表示されます.このようにして,Routerは類似のルーティングを集合してモジュール化処理を行うことができる.管理が容易です.したがってexpressではRouterオブジェクトを「mini-app」と呼ぶ.😎
  • 5.ユーザールータの分離


    (routesディレクトリで作成)
  • では、Routerオブジェクトを使用して貨物に関連するルートを個別のファイルに分離します.では、次のユーザー登録/会員加入部分も個別のRouterオブジェクトに分離しましょうか?routes/user.jsというファイルを作成し、分離してみましょう.
    < user.js>
    var express = require('express');
    var router = express.Router();
    
    router.get('/login', function(req, res, next) {
      res.send('로그인 페이지')
    });
    
    router.get('/register', function(req, res, next) {
      res.send('회원가입 페이지')
    });
      
    module.exports = router;
    < index.js>変更
    const userRouter = require('./routes/user');
    
    app.use('/user',userRouter);