Node 回顧(一)

  1. node 使用 JavaScript 作為開發(fā)語言;
  2. 由于 node 是一個異步事件驅(qū)動的平臺,所以在代碼中我們經(jīng)常需要使用回調(diào)函數(shù)。
 setTimeout(function(){
   console.log('callback is called');
 },3000);
  1. node 中的回調(diào)函數(shù)的格式:
  fucntion(err,data){
     // err 是錯誤信息,data 是返回的數(shù)據(jù)
  }
  1. process 對象
    process是一個全局內(nèi)置對象,可以在代碼中的任何位置訪問此對象,這個對象代表node.js代碼宿主的操作系統(tǒng)進程對象。
    使用process對象可以截獲進程的異常、退出等事件,也可以獲取進程的當(dāng)前目錄、環(huán)境變量、內(nèi)存占用等信息,還可以執(zhí)行進程退出、工作目錄切換等操作。
  • 當(dāng)我們想要查看應(yīng)用程序當(dāng)前目錄時,可以使用 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)錯誤流,它是用來打印錯誤信息的,我們可以通過它來捕獲錯誤信息 process.stderr.write(輸入內(nèi)容);
  • stdin 是進程的輸入流,我們可以通過注冊事件的方式來獲取輸入的內(nèi)容
  • exit 函數(shù)是在程序內(nèi)殺死進程,退出程序
    process.exit(code); //參數(shù) code 為退出后返回的代碼,如果省略則默認(rèn)返回 0;
  • 使用 process.on() 方法可以監(jiān)聽進程事件
  • 使用 setEncoding(編碼) 為流設(shè)置編碼
    process.stdin.setEncoding(編碼); process.stdout.setEncoding(編碼); process.stderr.setEncoding(編碼);
    詳見:http://nodejs.cn/api/process
  1. node 中調(diào)用模塊
    為了支持快速開發(fā),node平臺上提供了大量的模塊,封裝了各自不同的功能, 在node中,我們使用require函數(shù)調(diào)用模塊:
  require("模塊");
  1. node 中使用模塊
  • os 模塊
    os 模塊可以提供操作系統(tǒng)的相關(guān)信息,如:
    os.platform(); 查看操作系統(tǒng)平臺 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)常會有文件 I/O 的需求,node.js 中提供一個名為 fs 的模塊來支持 I/O操作,fs 模塊的文件 I/O 是對標(biāo)準(zhǔn) POSIX 函數(shù)的簡單封裝。
    • writeFile函數(shù),異步的將數(shù)據(jù)寫入一個文件, 如果文件已經(jīng)存在則會被替換,不能追加內(nèi)容到已有的文件。fs.writeFile(filename, data, callback)
      數(shù)據(jù)參數(shù)可以是 string 或者是 Buffe r,編碼格式參數(shù)可選,默認(rèn)為"utf8",回調(diào)函數(shù)只有一個參數(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)容追加到已有的文件中,如果文件不存在,則會創(chuàng)建一個新的文件,編碼格式默認(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)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容