Node 回顧(一)

  1. node 使用 JavaScript 作為開發(fā)語言燥狰;
  2. 由于 node 是一個(gè)異步事件驅(qū)動(dòng)的平臺(tái)妆绞,所以在代碼中我們經(jīng)常需要使用回調(diào)函數(shù)板惑。
 setTimeout(function(){
   console.log('callback is called');
 },3000);
  1. node 中的回調(diào)函數(shù)的格式:
  fucntion(err,data){
     // err 是錯(cuò)誤信息裆熙,data 是返回的數(shù)據(jù)
  }
  1. process 對(duì)象
    process是一個(gè)全局內(nèi)置對(duì)象端礼,可以在代碼中的任何位置訪問此對(duì)象,這個(gè)對(duì)象代表node.js代碼宿主的操作系統(tǒng)進(jìn)程對(duì)象入录。
    使用process對(duì)象可以截獲進(jìn)程的異常蛤奥、退出等事件,也可以獲取進(jìn)程的當(dāng)前目錄僚稿、環(huán)境變量凡桥、內(nèi)存占用等信息,還可以執(zhí)行進(jìn)程退出贫奠、工作目錄切換等操作唬血。
  • 當(dāng)我們想要查看應(yīng)用程序當(dāng)前目錄時(shí),可以使用 cwd 函數(shù) process.cwd();
  • 如果需要改變應(yīng)用程序目錄唤崭,可以使用 chdir 函數(shù)了 process.chdir("目錄");
  • stdout 是標(biāo)準(zhǔn)輸出流,它的作用就是將內(nèi)容打印到輸出設(shè)備上拷恨。
    process.stdout.write('hello world');
  console.log = function(d){    // console.log 就是封裝了 stdout
    process.stdout.write(d+'\n');
  } 
  • stderr 是標(biāo)準(zhǔn)錯(cuò)誤流,它是用來打印錯(cuò)誤信息的谢肾,我們可以通過它來捕獲錯(cuò)誤信息 process.stderr.write(輸入內(nèi)容);
  • stdin 是進(jìn)程的輸入流,我們可以通過注冊(cè)事件的方式來獲取輸入的內(nèi)容
  • exit 函數(shù)是在程序內(nèi)殺死進(jìn)程腕侄,退出程序
    process.exit(code); //參數(shù) code 為退出后返回的代碼,如果省略則默認(rèn)返回 0;
  • 使用 process.on() 方法可以監(jiān)聽進(jìn)程事件
  • 使用 setEncoding(編碼) 為流設(shè)置編碼
    process.stdin.setEncoding(編碼); process.stdout.setEncoding(編碼); process.stderr.setEncoding(編碼);
    詳見:http://nodejs.cn/api/process
  1. node 中調(diào)用模塊
    為了支持快速開發(fā)冕杠,node平臺(tái)上提供了大量的模塊微姊,封裝了各自不同的功能, 在node中,我們使用require函數(shù)調(diào)用模塊:
  require("模塊");
  1. node 中使用模塊
  • os 模塊
    os 模塊可以提供操作系統(tǒng)的相關(guān)信息分预,如:
    os.platform(); 查看操作系統(tǒng)平臺(tái) linux
    os.release(); 查看操作系統(tǒng)版本 3.8.0-44-generic
    os.type(); 查看操作系統(tǒng)名稱 Linux
    os.arch(); 查看操作系統(tǒng)CPU架構(gòu) x64
  var os = require("os");
  var result = os.platform() + '\n' + os.release() + '\n' + os.type() + '\n' + os.arch();
  console.log(result); // linux 3.8.0-44-generic    Linux   x64
  console.log(typeof(result));  // string
  • fs 模塊
    開發(fā)中我們經(jīng)常會(huì)有文件 I/O 的需求兢交,node.js 中提供一個(gè)名為 fs 的模塊來支持 I/O操作,fs 模塊的文件 I/O 是對(duì)標(biāo)準(zhǔn) POSIX 函數(shù)的簡(jiǎn)單封裝笼痹。
    • writeFile函數(shù)配喳,異步的將數(shù)據(jù)寫入一個(gè)文件, 如果文件已經(jīng)存在則會(huì)被替換,不能追加內(nèi)容到已有的文件。fs.writeFile(filename, data, callback)
      數(shù)據(jù)參數(shù)可以是 string 或者是 Buffe r,編碼格式參數(shù)可選凳干,默認(rèn)為"utf8"晴裹,回調(diào)函數(shù)只有一個(gè)參數(shù)err。
var fs= require("fs");
 fs.writeFile('test.txt', 'Hello World', function (err) {
     if (err) throw err;
     console.log('Saved successfully'); //文件被保存
});
- appendFile函數(shù)救赐,將新的內(nèi)容追加到已有的文件中涧团,如果文件不存在,則會(huì)創(chuàng)建一個(gè)新的文件,編碼格式默認(rèn)為"utf8"经磅。``fs.appendFile(文件名,數(shù)據(jù),編碼,回調(diào)函數(shù)(err));``
  var fs= require("fs");
   fs.appendFile('test.txt', 'data to append', function (err) {
     if (err) throw err;
    //數(shù)據(jù)被添加到文件的尾部
      console.log('The "data to append" was appended to file!'); 
  });

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末泌绣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子馋贤,更是在濱河造成了極大的恐慌赞别,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件配乓,死亡現(xiàn)場(chǎng)離奇詭異仿滔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)犹芹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門崎页,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人腰埂,你說我怎么就攤上這事飒焦。” “怎么了屿笼?”我有些...
    開封第一講書人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵牺荠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我驴一,道長(zhǎng)休雌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任肝断,我火速辦了婚禮杈曲,結(jié)果婚禮上驰凛,老公的妹妹穿的比我還像新娘。我一直安慰自己担扑,他們只是感情好恰响,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著涌献,像睡著了一般胚宦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上洁奈,一...
    開封第一講書人閱讀 51,718評(píng)論 1 305
  • 那天间唉,我揣著相機(jī)與錄音,去河邊找鬼利术。 笑死,一個(gè)胖子當(dāng)著我的面吹牛低矮,可吹牛的內(nèi)容都是我干的印叁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼军掂,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼轮蜕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蝗锥,我...
    開封第一講書人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤跃洛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后终议,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汇竭,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年穴张,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了细燎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡皂甘,死狀恐怖玻驻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情偿枕,我是刑警寧澤璧瞬,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站渐夸,受9級(jí)特大地震影響嗤锉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捺萌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一档冬、第九天 我趴在偏房一處隱蔽的房頂上張望膘茎。 院中可真熱鬧,春花似錦酷誓、人聲如沸披坏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽棒拂。三九已至,卻和暖如春玫氢,著一層夾襖步出監(jiān)牢的瞬間帚屉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來泰國打工漾峡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留攻旦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓生逸,卻偏偏與公主長(zhǎng)得像牢屋,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子槽袄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

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

  • Node.js是目前非忱游蓿火熱的技術(shù),但是它的誕生經(jīng)歷卻很奇特遍尺。 眾所周知截酷,在Netscape設(shè)計(jì)出JavaScri...
    w_zhuan閱讀 3,616評(píng)論 2 41
  • https://nodejs.org/api/documentation.html 工具模塊 Assert 測(cè)試 ...
    KeKeMars閱讀 6,338評(píng)論 0 6
  • 文件系統(tǒng)模塊是一個(gè)封裝了標(biāo)準(zhǔn)的 POSIX 文件 I/O 操作的集合。通過require('fs')使用這個(gè)模塊乾戏。...
    保川閱讀 785評(píng)論 0 0
  • topics: 1.The Node.js philosophy 2.The reactor pattern 3....
    宮若石閱讀 1,084評(píng)論 0 1
  • Node.js 常用工具 util 是一個(gè)Node.js 核心模塊迂苛,提供常用函數(shù)的集合,用于彌補(bǔ)核心JavaScr...
    FTOLsXD閱讀 535評(píng)論 0 2