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]);
  • 相关阅读:
    spring
    google-c-style
    process想停就停,真爽
    mytop
    Java 图片设置圆角(设置边框,旁白)
    当setTimeout遇到闭包
    FreeMarker辅助
    ImageIO.wtrie生成jpg图片质量损失方案:BufferedImage生成jpg图片文件流
    从BufferedImage到InputStream,实现绘图后进行下载(生成二维码图片并下载)
    使用Javascript 实现类
  • 原文地址:https://www.cnblogs.com/jingmi-coding/p/9407938.html
Copyright © 2011-2022 走看看