Node. js 학습 의 길 27 - Express 의 router 대상

2860 단어 node.js자바 script
Router([options])
let router = express.Router([options]);
  • options 대상
  • caseSensitive, 대소 문자 가 민감 하고 기본 적 으로 민감 하지 않 음
  • mergeParams 부모 공유 기의 필수 매개 변수 값 을 유지 합 니 다. 부모 항목 과 하위 항목 이 충돌 하 는 매개 변수 이름 이 있 으 면 이 하위 항목 의 값 이 우선 합 니 다
  • strict 엄격 한 루트 를 활성화 하고 기본적으로 사용 하지 않 습 니 다. 사용 하지 않 으 면 /uu 정상적으로 접근 하지만 /uu/ 접근 할 수 없습니다
  • 1. router.all
  • 모두 호출
  • router.all(path, [callback, ...] callback)
  • router.all('*', fn1, fn2...);
    //   
    router.all('*', fn1);
    router.all('*', fn2);
    //   
    router.all('/user', fn3);

    2. router.METHOD
  • router.METHOD(path, [callback, ...] callback)
  • 사실상 ajax 의 각종 요청 방법
  • router.get('/', (req, res, next) => {
        
    })
    
    router.post('/', (req, res, next) => {
        
    })

    3. router.route(path)
    var router = express.Router();
    
    router.param('user_id', function(req, res, next, id) {
      // sample user, would actually fetch from DB, etc...
      req.user = {
        id: id,
        name: 'TJ'
      };
      next();
    });
    
    router.route('/users/:user_id')
    .all(function(req, res, next) {
      // runs for all HTTP verbs first
      // think of it as route specific middleware!
      next();
    })
    .get(function(req, res, next) {
      res.json(req.user);
    })
    .put(function(req, res, next) {
      // just an example of maybe updating the user
      req.user.name = req.params.name;
      // save user ... etc
      res.json(req.user);
    })
    .post(function(req, res, next) {
      next(new Error('not implemented'));
    })
    .delete(function(req, res, next) {
      next(new Error('not implemented'));
    })

    4. router.use
    4.1 사용 경로
    var express = require('express');
    var app = express();
    var router = express.Router();
    
    // simple logger for this router's requests
    // all requests to this router will first hit this middleware
    router.use(function(req, res, next) {
      console.log('%s %s %s', req.method, req.url, req.path);
      next();
    });
    
    // this will only be invoked if the path starts with /bar from the mount point
    router.use('/bar', function(req, res, next) {
      // ... maybe some additional /bar logging ...
      next();
    });
    
    // always invoked
    router.use(function(req, res, next) {
      res.send('Hello World');
    });
    
    app.use('/foo', router);
    
    app.listen(3000);

    4.2 모듈 사용 방법
    var logger = require('morgan');
    
    router.use(logger());
    router.use(express.static(__dirname + '/public'));
    router.use(function(req, res){
      res.send('Hello');
    });

    좋은 웹페이지 즐겨찾기