"
QueryString模块
"
“QueryString” 模块用于实现URL参数字符串与参数对象的互相转换:
举例:
1 var url = require('url');
2 var qs = require('querystring');
3 var queryUrl = "http://localhost:8888/bb?name=bigbear&memo=helloworld" ;
4 queryUrl = url.parse(queryUrl).query ;
5 console.log(queryUrl) ;
6 console.log(qs.parse(queryUrl)) ;
输出:
name=bigbear&memo=helloworld
{
name: 'bigbear',
memo: 'helloworld'
}
补充:
querystring.stringify({foo: 'bar', baz: 'qux'}, ';', ':')
// 返回如下字串'foo:bar;baz:qux'
querystring.parse(str, [sep], [eq], [options])
//将一个 query string 反序列化为一个对象。可以选择是否覆盖默认的分割符('&')和分配符('=')。
"
Path模块
"
本模块包含一套用于处理和转换文件路径的工具集。几乎所有的方法仅对字符串进行转换, 文件系统是不会检查路径是否真实有效的。
1 var url = require(‘url’);
2 var qs = require(‘querystring’);
3 var path = require(“path”) ;
4 var queryUrl = “http://localhost:8888/bb?name=bigbear&memo=helloworld” ;
5 var root = path.basename(queryUrl) ;
6 console.log(root) ; // bb?name=bigbear&memo=helloworld
7 var ext = path.extname(root) ;
8 console.log(ext || “Not Ext Name !”) ; // Not Ext Name !
举例:
index.js
var server = require("./server");
var router = require("./router");
server.start(router.route);
server.js
var http = require("http");
var url = require("url");
function start(route) {
function onRequest(request, response) {
var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " received.");
route(pathname);
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
}
exports.start = start;
route.js
function route(pathname) {
console.log("About to route a request for " + pathname);
}
exports.route = route;