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也将存储匹配字符串,而不是正则表达式。