zoukankan      html  css  js  c++  java
  • Express框架 --router/app.use

    翻看去年自己记录的印象笔记,准备把笔记上的一些内容也同时更新到博客上,方便自己查看。


    app.use(path,callback)中的callback既可以是router对象又可以是函数
    app.get(path,callback)中的callback只能是函数
    这说明,给app.get(app.post、app.put同理)赋个路由对象是不行的,其实,可以将app.get()看作app.use的特定请求(get)的简要写法。即
     
    var express = require('express');
    var app = express();
    app.get('/hello',function(req,res,next){
        res.send('hello test2');
     
    });
    等同于:
    var express = require('express');
    var app = express();
    var router = express.Router();
     
    router.get('/', function(req, res, next) {
      res.send('hello world!');
    });
    app.use('/hello',router);
     

    什么时用

    那么,什么时用app.use,什么时用app.get呢?
    路由规则是app.use(path,router)定义的,router代表一个由express.Router()创建的对象,在路由对象中可定义多个路由规则。可是如果我们的路由只有一条规则时,可直接接一个回调作为简写,也可直接使用app.getapp.post方法。即
    当一个路径有多个匹配规则时,使用app.use,否则使用相应的app.method(get、post)
     
    总结:
    app.use用来使用中间件( middleware)
     
    2.Router

    A router object is an isolated instance of middleware and routes. You can think of it as a “mini-application,” capable only of performing middleware and routing functions. Every Express application has a built-in app router.路由器对象是中间件和路由的孤立实例。 您可以将其视为“微型应用程序”,只能执行中间件和路由功能。 每个Express应用程序都有一个内置的应用程序路由器
    A router behaves like middleware itself, so you can use it as an argument to app.use() or as the argument to another router’s use() method.路由器的行为就像中间件本身,因此您可以将其用作app.use()的参数或作为另一路由器的use()方法的参数。
     
    The top-level express object has a Router() function that creates a new router object.
    Create a new router as follows:
    var router = express.Router([options]);
  • 相关阅读:
    登录及注册页面
    多方式登录
    git笔记
    后台主页模块设计
    auth模块迁移后需新增字段
    使用idea构建SpringBoot源码
    Springboot相关面试问题
    Springboot自动加载工具-devtools的理解与使用
    SpringBoot项目的一些简单常用配置
    Java线程池及Executor框架的理解
  • 原文地址:https://www.cnblogs.com/jingmi-coding/p/9407938.html
Copyright © 2011-2022 走看看