url.parse

  • 使用 url.parse 方法将路径解析为一个方便操作的对象
  • 第2个参数设为 true 表示直接将查询字符串转为一个对象
PS D:\nodejs\demo> node
> url.parse('http://bbs.javaex.cn/forumdisplay/5?dateline=7', true)
Url {
protocol: 'http:',
slashes: true,
auth: null,
host: 'bbs.javaex.cn',
port: null,
hostname: 'bbs.javaex.cn',
hash: null,
search: '?dateline=7',
query: [Object: null prototype] { dateline: '7' },
pathname: '/forumdisplay/5',
path: '/forumdisplay/5?dateline=7',
href: 'http://bbs.javaex.cn/forumdisplay/5?dateline=7' }
>



示例

var http = require('http');
var fs = require('fs');
var url = require('url');

http
.createServer(function(request, respone) {
var szUrl = request.url;

// 使用 url.parse 方法将路径解析为一个方便操作的对象
// 第2个参数设为 true 表示直接将查询字符串转为一个对象
var parseObj = url.parse(szUrl, true);

// 单独获取不包含查询字符串的路径部分(不包含 ? 之后的内容)
var pathname = parseObj.pathname;
console.log("pathname:" + pathname);

// 处理静态资源
if (szUrl.startsWith('/static/')) {
fs.readFile('.' + pathname, function(error, data) {
if (error) {
return respone.end('404 Not Found');
}
respone.end(data);
});
}
// 处理请求路径
else if (szUrl=='/') {
fs.readFile('./view/index.html', function(error, data) {
if (error) {
return respone.end('404 Not Found');
}
respone.end(data);
});
}
// 404
else {
fs.readFile('./view/404.html', function(error, data) {
if (error) {
return respone.end('404 Not Found');
}
// respone.end(data);
respone.end(JSON.stringify(parseObj.query));
});
}
})
.listen(3000, function() {
console.log("running...");
})


回到顶部