25 - express next() 和静态路由

  • express中next()方法使用时候的特点

    • 在实际中,我们设置路由的时候,有可能设置非常相近的路由

    • 所以会造成返回结果不符合需求的状况

    • 我们可以通过调换路由的顺序解决问题,但是路由如果非常多的时候

    • 我们就不容易设置位置,所以我们需要借助next

  • 一般当有对应的用户名过来后,我们需要到数据库中查找对应的数据然后匹配

    • 如果可以匹配到后,就停止寻找路由,如果不能匹配就继续寻找路由
var express = require('express');
var app = express();


/*在实际中,我们设置路由的时候,有可能设置非常相近的路由
 * 所以会造成返回结果不符合需求的状况
 * 我们可以通过调换路由的顺序解决问题,但是路由如果非常多的时候
 * 我们就不容以设置位置,所以我们需要借助next*/




app.get('/:admin/:pwd',function (req, res,next) {

    console.log('admin');

    next();
    /*一般当有对应的用户名过来后,我们需要到数据库中查找对应的数据然后匹配
     * 如果可以匹配到后,就停止寻找路由,如果不能匹配就继续寻找路由*/

    // if(正确){
    //
    //     res.send()
    // }else{
    //
    //     next();
    // }

    res.send('管理员用户登录');


});

app.get('/wmx/123',function (req, res) {
    console.log('username');
    res.send('普通用户登录');
});


app.listen(3000);
  • 一般在实际中, 如果有静态路由设置和其他的路由,我们一般先设置静态路由

    • 虽然静态路由也会阻断对应的其他路由,但是静态路由是固定,灵活性不高

    • 但是其他路由可以随便设置,灵活性高,所以我们一般不调换位置

    • 只要给其他的路由设置和静态路由不一样的路由就可以

    • 有时候,我们也可以给对应的静态路由设置别名,就是给他设置一个路径

    • 例如/jingtai,那么我们访问对应的静态资源的时候,需要带着这个路径

var express = require('express');
var app = express();

/*一般在实际中,如果有静态路由设置和其他的路由,我们一般先设置静态路由
 * 虽然静态路由也会阻断对应的其他路由,但是静态路由是固定,灵活性不高
 * 但是其他路由可以随便设置,灵活性高,所以我们一般不调换位置
 * 只要给其他的路由设置和静态路由不一样的路由就可以
 *有时候,我们也可以给对应的静态路由设置别名,就是给他设置一个路径
 * 例如/jingtai,那么我们访问对应的静态资源的时候,需要带着这个路径*/

//设置静态路由
// app.use('/',express.static('./public'));

//给静态路由设置别名
app.use('/jingtai',express.static('./public'));

//其他路由
app.get('/test',function (req, res) {
    res.send('123');
});

app.listen(3000);

你可能感兴趣的:(25 - express next() 和静态路由)