1. 程式人生 > >nodejs學習整理(二)

nodejs學習整理(二)

模組

模組分類:自定義模組-自己寫的,核心模組-官方的,第三方模組-組織或個人公開的

nodejs會為每一個檔案新增如下程式碼:
(function(exports,require,module,__dirname,__filename) { //程式碼 })
module:當前模組,也可理解為當前檔案
module.exports:當前模組匯出的物件
exports:與module.exports作用相同
require:用於引入模組
__dirname:當前模組的完整路徑
__filename: 當前模組的完整路徑及檔名

require的用法:

以路徑開頭 不以路徑開頭
檔案型別 require(./1.js) 用於引入自己寫的模組 require(‘querystring’);用於引入核心模組
目錄型別 require(./01)自動尋找目錄下的index.js,若找不到則到package.json找main屬性下的檔案 require(‘circle’)自動去當前目錄下的node_modules目錄下找circle目錄,用於引入第三方模組

核心模組

1.querystring 查詢字串


(1)parse()

const querystring=require('querystring');
var str='ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=%E7%81%AB%E8%BD%A6&rsv_pq=87483eb30000706a&rsv_t=e9edM1ozsNGn4gDklFj4vFrwQ0BKI8dmVGIFndy4LM6GJmp3h5KsTFqqnGc&rqlang=cn&rsv_enter=1&rsv_sug3=8&rsv_sug1=4&rsv_sug7=101&rsv_sug2=0&inputT=1185&rsv_sug4=1967';
var obj=querystring.parse(str);
console.log(obj);

1).用於解析瀏覽器提交的資料 2).返回值為物件
(2).stringify()

const querystring=require('querystring');
var person={
	name:'tom',
		age:18,
		sex:'男'
}
var str1=querystring.stringify(obj);
console.log(str1);

1)用於將物件轉為查詢字串 2)返回值為字串
2.url模組
1.parse() 將網址解析為物件
解析結果:
protocol 協議
hostname 主機
port 埠
pathname 路徑
query 查詢字串 得到的query是一個物件
hash 雜湊
2.format() 將物件轉為網址

練習程式碼:

const url=require('url');
var str='http://www.tmooc.cn/course/101.html?lid=5&pname=dell#sale';
var obj=url.parse(str);
//console.log(obj);
var obj2={
	protocol:'http',
    hostname:'www.codebody.com',
    port:80,
		pathname:'/hom/detail.html',
		query:'lid=10&name=tom',
	hash:'One'
    
}
console.log(url.format(obj2));

query+url 解析瀏覽器提交的資料:

const url=require('url');
const querystring=require('querystring');
var str='http://www.tedu.cn/web/1809.html?sid=20&name=tom#detail';
var obj=url.parse(str);//得到包含query物件的物件
var obj2=querystring.parse(obj.query);//解析obj的物件成員query
console.log(`編號: ${obj2.sid}`);//得到query的sid
console.log(obj.query);//顯示query {sid:20,name:'tom'}