node:單線程能夠經過回調進行異步操做。node
node核心異步
非阻塞ide
單線程ui
事件驅動url
事件:EventEmitterspa
node模塊的分類線程
1:核心模塊orm
2:文件模塊對象
3:第三方模塊事件
建立模塊的流程
1:建立模塊 teacher.js
2:導出模塊 exports.add=function(){}
3:加載模塊 var teacher=require("../teacher.js")
4:使用模塊 teacher.add('scoot');
node能夠調用的方法
1:url.parse(urlStr[,pareQueryString][,slashesDenoteHost]); //後2個參數默認爲false,第二個爲true時會把query變成一個對象,原來是字符串,第三個參數爲true時會把沒有協議的地址正常解析
eg:
url.parse('http://www.imooc.com/video');
把url地址解析爲一個對象。
{
href: 完整地址
protocol: 協議
slashes: 協議後是否使用雙斜槓
auth :基本的認證
hostname:主機名
port: 端口
host: 主機
pathname: 路徑名('/video')
path:路徑名('/video')
search: 查詢字符串帶?
query : 查詢字符串,不帶?
hash :帶#的錨點
}
2:url.format(urlObj) //傳入一個對象,把一個合法url的對象生成一個url地址
3:url.reolve(from,to) 域名+地址生成一個合法的url
eg: url.reolve('http://www.imooc.com/','/video/6710');
結果爲:http://www.imooc.com/video/6710
4:querystring//把請求參數解析成對象
querystring.stringify({name:'scoot',course:['jaxj','node'],from:''})
結果爲
name=scoot&course=jaxj&course=node&from='
querystring.stringify({name:'scoot',course:['jaxj','node'],from:''},',')
結果
name=scoot,course=jaxj,course=node,from='querystring.stringify({name:'scoot',course:['jaxj','node'],from:''},',',':')
結果
name:scoot,course:jaxj,course:node,from:'
5:轉義 querystring.escape('<哈哈>');
結果
'%3C%E5%93%88%E5%93%88%3E'
6:反轉義
querystring.unescape('%3C%E5%93%88%E5%93%88%3E');
結果:
哈哈