nodejs(上)

events

事件

  • 又稱為發(fā)布訂閱模式

  • 又稱為觀察者模式

  • 當(dāng)主題對(duì)象發(fā)生變化時(shí),會(huì)通知所有的觀察者對(duì)象,更新自己的行動(dòng)

獲取時(shí)間模塊

var events = require("events");

注冊(cè)事件

// 方法1
newDad.addListener("lee",test1);
// 方法2
newDad.on("lee",test2)
// 綁定一次的事件
newDad.once("le",test1);

發(fā)射事件

// 當(dāng)用addListener或者on綁定事件的時(shí)候跺涤,同一個(gè)事件可以發(fā)射多次
newDad.emit("lee");
newDad.emit("lee");
// 但當(dāng)用once綁定的事件時(shí)贤壁,無(wú)論發(fā)射幾次該事件高镐,只會(huì)執(zhí)行一次
newDad.emit("le");
newDad.emit("le");

刪除事件

//  刪除綁定的事件
newDad.removeListener("lee",test1);
//  刪除所有的事件目养,既然是刪除所有事件,里面就不需要加參數(shù)
newDad.removeAllListeners()财异;

buffer

buffer:緩存區(qū)倘零,暫時(shí)存放在內(nèi)存里的一段數(shù)據(jù)。JS語(yǔ)言自身只有字符串類型宝当,沒(méi)有二進(jìn)制數(shù)據(jù)類型视事,在處理文件流時(shí),必須使用到二進(jìn)制數(shù)據(jù)庆揩,因此在Node.js中俐东,定義一個(gè)buffer類,該類用來(lái)創(chuàng)建一個(gè)專門存放二進(jìn)制數(shù)據(jù)緩存區(qū)

buffer有一個(gè)八位字節(jié)一個(gè)字節(jié)元素組成的數(shù)組订晌,單位用16進(jìn)制表示虏辫,取值范圍0-255

創(chuàng)建buffer對(duì)象

//創(chuàng)建方式1  隨機(jī)創(chuàng)建1個(gè)buffer
var buffer = new Buffer(10);
console.log(buffer);
//更改buffer,參數(shù)1 更改的數(shù)  參數(shù)2:從什么位置更該锈拨,參數(shù)3砌庄,更改到什么位置
buffer.fill(255,2);
console.log(buffer);
buffer.fill(255,2,4);
console.log(buffer);
//創(chuàng)建方式2   通過(guò)字符串創(chuàng)建
var buffer = new Buffer("大家好");
console.log(buffer);
//toString() 將buffer格式轉(zhuǎn)化為中文
console.log(buffer.toString());
//通過(guò)數(shù)組創(chuàng)建buffer
var buffer = new Buffer([0xe5,0xa4,0xa7,0xe5,0xae,0xb6,0xe5,0xa5,0xbd]);
//打印出來(lái)的buffer 會(huì)自動(dòng)將0x 去掉
console.log(buffer);
console.log(buffer.toString());

path

normalize:規(guī)范化字符串路徑

var path = require("path");
// ./ 是同級(jí)   ../ 是上一級(jí)
//index.php 前面有一個(gè) ../ 會(huì)網(wǎng)上跳一級(jí),所以跳過(guò)test1直接到test
var urlPath = "././////test/test1/../index.php";
var newPath = path.normalize(urlPath);
console.log(newPath);

join 將多個(gè)參數(shù)值字符串結(jié)合成一個(gè)路徑字符串

var newPath1 = path.join(__dirname,"test","test1/mycode","index.php");
console.log(newPath1);

resolve:把參數(shù)解析為一個(gè)絕對(duì)路徑

  • 1.以應(yīng)用程序的根目錄為起點(diǎn),根據(jù)參數(shù)的值解析出一個(gè)絕對(duì)路徑

    1. .當(dāng)前目錄 ..上級(jí)目錄
    1. 普通字符串代表下一級(jí)目錄
    1. 如果沒(méi)有下一個(gè)參數(shù),返回當(dāng)前路徑
    1. /代表盤符的根目錄
var urlPath1 = "test/test1/test.php";
var newPath2 = path.resolve(urlPath1);
console.log(newPath2);

http

http:超文本傳輸協(xié)議,是互聯(lián)網(wǎng)使用最廣的一個(gè)協(xié)議.HTTP模塊主要用于搭建HTTP服務(wù)器和客戶端奕枢,使用HTTP服務(wù)器或客戶端功能必須帶哦用HTTP模塊

var http = require(“http”);var url = require(“url”);//創(chuàng)建服務(wù)器//http繼承自tcpvar server = http.createServer(function (req,res) {    var urlstr = req.url;//獲取請(qǐng)求的路徑    var urlMethod = req.method;//獲取請(qǐng)求的方法   //console.log(urlMethod);    
res.end(“hello”);});
server.listen(8080);

HTTP模擬客戶端

//nodejs的服務(wù)端
var http = require("http");
var server = http.createServer(function (req,res) {
    var str = "";
    req.on("data",function (chunk) {
        str += chunk;
    })
    req.on("end",function () {
        console.log(str);
    })
    var obj = {
        name:"dr",
        age:19
    }
    res.write(JSON.stringify(obj));
    res.end();
})
server.listen(8989);
//通過(guò)nodejs模擬客戶端   客戶端請(qǐng)求服務(wù)端
var http = require("http");
var options = {
    method:"post",
    host:"localhost",
    port:8989,
    path:"/"
};
/** request :發(fā)請(qǐng)求
* http.request() 返回一個(gè) http.ClientRequest類的實(shí)例娄昆。
* ClientRequest實(shí)例是一個(gè)可寫流對(duì)象。
* 如果需要用POST請(qǐng)求上傳一個(gè)文件的話缝彬,
* 就將其寫入到ClientRequest對(duì)象
**/
var request = http.request(options,function (res) {
    var str = "";
    res.on("data",function (chunk) {
        str += chunk;
    })
    res.on("end",function () {
        console.log(str);
    })
})
var  obj = {
    name:"RR",
    age:188
}
request.write(JSON.stringify(obj));
request.end();
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末萌焰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子谷浅,更是在濱河造成了極大的恐慌扒俯,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件一疯,死亡現(xiàn)場(chǎng)離奇詭異撼玄,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)墩邀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門掌猛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人眉睹,你說(shuō)我怎么就攤上這事荔茬≈豁铮” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵兔院,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我站削,道長(zhǎng)坊萝,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任许起,我火速辦了婚禮十偶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘园细。我一直安慰自己惦积,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布猛频。 她就那樣靜靜地躺著狮崩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鹿寻。 梳的紋絲不亂的頭發(fā)上睦柴,一...
    開(kāi)封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音毡熏,去河邊找鬼坦敌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛痢法,可吹牛的內(nèi)容都是我干的狱窘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼财搁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蘸炸!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起妇拯,我...
    開(kāi)封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤幻馁,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后越锈,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體仗嗦,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年甘凭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了稀拐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡丹弱,死狀恐怖德撬,靈堂內(nèi)的尸體忽然破棺而出铲咨,到底是詐尸還是另有隱情,我是刑警寧澤蜓洪,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布纤勒,位于F島的核電站,受9級(jí)特大地震影響隆檀,放射性物質(zhì)發(fā)生泄漏摇天。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一恐仑、第九天 我趴在偏房一處隱蔽的房頂上張望泉坐。 院中可真熱鬧,春花似錦裳仆、人聲如沸腕让。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)纯丸。三九已至,卻和暖如春构捡,著一層夾襖步出監(jiān)牢的瞬間液南,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工勾徽, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留滑凉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓喘帚,卻偏偏與公主長(zhǎng)得像畅姊,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子吹由,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • https://nodejs.org/api/documentation.html 工具模塊 Assert 測(cè)試 ...
    KeKeMars閱讀 6,340評(píng)論 0 6
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理若未,服務(wù)發(fā)現(xiàn),斷路器倾鲫,智...
    卡卡羅2017閱讀 134,704評(píng)論 18 139
  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語(yǔ)言磕道,發(fā)作 oo-boon-too 的音供屉。了解發(fā)音是有意...
    螢火蟲de夢(mèng)閱讀 99,366評(píng)論 9 467
  • 人們總說(shuō)“失去了才知道珍惜”,但他們珍惜的往往是失去的聯(lián)系,對(duì)于現(xiàn)有的伶丐,依然采取務(wù)實(shí)的態(tài)度悼做,那就只能不停地重復(fù)“失...
    齊木吟閱讀 155評(píng)論 0 0
  • 20160619,今天作業(yè)“無(wú)主題” 既然無(wú)主題哗魂,那我就我手畫我心咯肛走,因?yàn)閷W(xué)插花,覺(jué)得植物的靜美特別有味道录别,這羹与,也...
    xlfd618閱讀 177評(píng)論 0 0