nodejs學習整理(二)
阿新 • • 發佈:2018-11-06
模組
模組分類:自定義模組-自己寫的,核心模組-官方的,第三方模組-組織或個人公開的
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'}