Node.js-入門二--進程

1.簡介


process()是一個全局內置對象,可以在代碼中的任何位置訪問此對象,這個對象代表我們的node.js代碼宿主的操作系統進程對象。

使用process對象可以截獲進程的異常、退出等事件,也可以獲取進程的當前目錄、環境變量、內存佔用等信息,還可以執行進程退出、工作目錄切換等操作。

下面我們一起來學習一下process對象的一些常用方法。


2.cwd函數的基本用法。

當我們想要查看應用程序當前目錄時,可以使用cwd函數,使用語法如下:

  1. process.cwd();

獲取程序目錄的方法就是這樣簡單。

3.chdir函數的基本用法。


如果需要改變應用程序目錄,就要使用chdir函數了,它的用法如下:


  1. process.chdir("目錄");

4.stdout函數的基本用法。

stdout是標準輸出流,它是幹什麼的呢?請下看下面的示例:

  1. console.log = function(d){
  2. process.stdout.write(d+'\n');
  3. }
沒錯,它的作用就是將內容打印到輸出設備上,console.log就是封裝了它。

5.stderr函數的基本用法。

stderr是標準錯誤流,和stdout的作用差不多,不同的是它是用來打印錯誤信息的,我們可以通過它來捕獲錯誤信息,基本使用方法如下:


  1. process.stderr.write(輸入內容);


6.stdin函數的基本用法

stdin是進程的輸入流,我們可以通過註冊事件的方式來獲取輸入的內容,如下:

  1. process.stdin.on('readable', function() {
  2. var chunk = process.stdin.read();
  3. if (chunk !== null) {
  4. process.stdout.write('data: ' + chunk);
  5. }
  6. });

示例中的chunk就是輸入流中的內容。

7.exit函數的基本用法

如果你需要在程序內殺死進程,退出程序,可以使用exit函數,示例如下:

  1. process.exit(code);

參數code爲退出後返回的代碼,如果省略則默認返回0;


8.監聽進程事件

使用process.on()方法可以監聽進程事件。

exit事件

當進程要退出之前,會觸發exit事件。通過監聽exit事件,我們可就以在進程退出前進行一些清理工作:

  1. //參數code表示退出碼
  2. process.on("exit",function(code){
  3. //進行一些清理工作
  4. console.log("I am tired...")
  5. });
  6. var tick = Date.now();
  7. console.log(tick);

uncaughtException事件

如果進程發生了未捕捉的異常,會觸發uncaughtException事件。通過監聽這個事件,你可以 讓進程優雅的退出:

  1. //參數err表示發生的異常
  2. process.on("uncaughtException",function(err){
  3. console.log(err);
  4. });
  5. //故意拋出一個異常
  6. throw new Error("我故意的...");

使用process.on()方法可以監聽進程事件。

exit事件

當進程要退出之前,會觸發exit事件。通過監聽exit事件,我們可就以在進程退出前進行一些清理工作:

  1. //參數code表示退出碼
  2. process.on("exit",function(code){
  3. //進行一些清理工作
  4. console.log("I am tired...")
  5. });
  6. var tick = Date.now();
  7. console.log(tick);

uncaughtException事件

如果進程發生了未捕捉的異常,會觸發uncaughtException事件。通過監聽這個事件,你可以 讓進程優雅的退出:

  1. //參數err表示發生的異常
  2. process.on("uncaughtException",function(err){
  3. console.log(err);
  4. });
  5. //故意拋出一個異常
  6. throw new Error("我故意的...");

exit事件

當進程要退出之前,會觸發exit事件。通過監聽exit事件,我們可就以在進程退出前進行一些清理工作:

  1. //參數code表示退出碼
  1. process.on("exit",function(code){
  1. //進行一些清理工作
  1. console.log("I am tired...")
  1. });
  1. var tick = Date.now();
  1. console.log(tick);

uncaughtException事件

如果進程發生了未捕捉的異常,會觸發uncaughtException事件。通過監聽這個事件,你可以 讓進程優雅的退出:

  1. //參數err表示發生的異常
  2. process.on("uncaughtException",function(err){
  3. console.log(err);
  4. });
  5. //故意拋出一個異常
  6. throw new Error("我故意的...");

9.設置編碼


在我們的輸入輸出的內容中有中文的時候,可能會亂碼的問題,這是因爲編碼不同造成的,所以在這種情況下需要爲流設置編碼,如下示例:

  1. process.stdin.setEncoding(編碼);
  2.  
  3. process.stdout.setEncoding(編碼);
  4.  
  5. process.stderr.setEncoding(編碼);



process.stdin.setEncoding(編碼);   process.stdout.setEncoding(編碼);   process.stderr.setEncoding(編碼);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章