node express framework req . original URL baseUrl parh有什么区别?

解析过程中会逐步删除url。比如:

// app.js

...

var express = require(' express ');

var users = require(' users ');

var app = express();

app.use('/users ',用户);

module.exports = app

// users.js

var express = require(' express ');

var路由器= express。路由器();

router . count = 0;

//拼写错误

/*

router.get('/users/id ',function(req,res,next) {

RES . send('/user/id ');

});

*/

//正确书写

router.get('/id ',function(req,res,next) {

RES . send('/user/id ');

});

module.exports =路由器;

使用第一种书写方式,浏览器会得到404未找到。二是正常。原因是解析过程中会一步步删除网址。

通过node-inspector调试上面的例子,可以得到运行中req.url、req.originalUrl和req.baseUrl的值。

//调试控制台

& gt请求. url

"/id "

& gt请求.原始Url

"/用户/id "

& gtreq.baseUrl

"/用户"

解释如下:

req . URL = req . original URL-req . base URL .也是router.get传入的匹配路径的匹配对象,这也可以解释上面例子的运行结果。All、post、put等功能都是一样的。

使用正则表达式等匹配表达式,baseUrl也将存储匹配字符串,而不是正则表达式。