zoukankan      html  css  js  c++  java
  • express中app.get和app.use的解析

    app.get(path,callback)中的callback只能是函数

    app.use(path,callback)中的callback既可以是router对象又可以是函数

    当其是router对象时,访问地址为path+router提供的路径

    另外,app.use相当于是通用的一个方法,我们可以使用app.use替换app.get。

    我们来看一个例子:

    app.js

     1 var express=require('express');
     2 var app=express();
     3 var router = require( './router');
     4 
     5 //1
     6 app.use( '/test1', function(req,res,next){
     7 res.send( 'hello test1');
     8 });
     9 
    10 //2
    11 app.get( '/test2', function(req,res,next){
    12 res.send( 'hello test2');
    13 });
    14 
    15 //3
    16 app.get( '/test3',router);
    17 
    18 //4
    19 app.use( '/test4',router);
    20 
    21 app.listen(3000);

    router.js

    1 var express = require('express');
    2 var router = express.Router();
    3 
    4 router.get('/', function (req, res, next) {
    5     res.send('hello router');
    6 });
    7 module.exports = router;

    当我们访问/test3时提示如下:                            /test4可以正常访问:

            

    在来看看如何使用app.use替换app.get

    app.js

     1 var express = require('express');
     2 var app = express();
     3 var router = express.Router();
     4 
     5 // app.get('/hello', function (req, res, next) {
     6 //     res.send('hello world');
     7 // });
     8 
     9 router.get('/', function (req, res, next) {
    10     res.send('hello world!');
    11 });
    12 router.get('/test', function (req, res, next) {
    13     res.send('hello test!');
    14 });
    15 //此时可以访问两个地址,即localhost:3000/hello和localhost:3000/hello/test
    16 //由此可知,上面的app.get可以由该app.use替换
    17 //当有多条路径时可以使用路由
    18 app.use('/hello',router);
    19 
    20 app.listen(3000);

    如上述代码所示,中间件可以访问两个地址(取决于路由的数量),其中地址localhost:3000/hello功能与上述注释块相同。

    因此,当有多条路径存在时,可以使用路由。

  • 相关阅读:
    区分DPI、分辨率(PPI)、图像的物理大小、像素宽度
    生成缩略图方法
    C#中调用Windows API的要点 .
    改变变量触发事件
    窗体异步示例
    Scroll滚动后发生的改变
    绘制不同颜色的文本图片
    字符串绘图片
    c#生成缩略图
    衔接UI线程和管理后台工作线程的类(多线程、异步调用)
  • 原文地址:https://www.cnblogs.com/jfl-xx/p/7268353.html
Copyright © 2011-2022 走看看