先上一段代码说明之。
var url = require("url"),
path = require("path");
module.exports = function(req, res, next){
var REQURL = url.parse(req.url).pathname;
console.log(req.url," REQURL=",REQURL);
var PATH = path.basename(REQURL);
console.log(req.url," PATH=",PATH);
next();
};
如果req对应的url请求地址为http://localhost/aaaa/bbbb/cccc?x=y
那么,其中REQURL值为”/aaaa/bbbb/cccc”,PATH的值为”cccc”(最后一个/号后面的内容,且不带’/’号和问号),本身req.url的值为”/aaaa/bbbb/cccc?x=y”(就是网址主机后面整个部分)
判断请求的url是否等于某一个位置”/xxx”,可以这样:
if (req.url == "/xxx") {
//your code
} else next();
但是上面的是完全判断,req.url中带了参数,如果需要纯粹的判断,可以用这个url.parse(req.url).pathname
,也就是上面的REQURL。
提取url中的参数和获得post参数可以看另一篇博客。
判断url的第一个请求子目录是否为”/xxxx”可以这样做:
var path = require("path");
var PATH = req.url.toString();
if (PATH.indexOf("/xxxx") == 0){
// your code
} else next();
关于Buffer.indexOf()这个函数的具体说明,可以看这里。
新手入门,写个备忘,菊苣们见谅。