process.cwd(); 查看當前目錄
process.chdir('目錄'); 改變應(yīng)用程序目錄
process.stdout.write(''); 標準輸出流,類似console.log()
process.stderr.write(''); 標準錯誤流
stdin 是進程的輸入流,可以通過注冊事件的方式來獲取輸入的內(nèi)容
process.stdin.on('readable', function() {
var chunk = process.stdin.read();
if (chunk !== null) {
process.stdout.write('data: ' + chunk);
}
});
exit 程序內(nèi)殺死進程,退出程序。
process.exit(code); //code為退出后返回的代碼,默認為0
process.on() 監(jiān)聽事件進程事件。
退出之前,監(jiān)聽exit事件
process.on("exit",function(code){
//進行一些清理工作
console.log("I am tired...")
});
var tick = Date.now();
console.log(tick);
uncaughtExpeption 進程發(fā)生了未捕捉的異常
//參數(shù)err表示發(fā)生的異常
process.on("uncaughtException",function(err){
console.log(err);
});
//故意拋出一個異常
throw new Error("我故意的...");
設(shè)置編碼流
(輸出輸入內(nèi)容有中文時,容易產(chǎn)生亂碼)
process.stdout.setEncoding('utf-8');
I/O 文件操作流
fs模塊提供writeFile函數(shù),可以異步的將數(shù)據(jù)寫入一個文件, 如果文件已經(jīng)存在則會被替換。
writeFile函數(shù)雖然可以寫入文件,但是如果文件已經(jīng)存在,我們只是想添加一部分內(nèi)容,它就不能滿足我們的需求了,很幸運,fs模塊中還有appendFile函數(shù),它可以將新的內(nèi)容追加到已有的文件中,如果文件不存在,則會創(chuàng)建一個新的文件。
exists的回調(diào)函數(shù)只有一個參數(shù),類型為布爾型,通過它來表示文件是否存在。
rename 提供文件改名,移動文件。
readFile 讀取文件。
unlink 刪除文件。
fs.mkdir(路徑,權(quán)限,回調(diào)函數(shù)(err)); 創(chuàng)建文件。
fs.rmdir(路徑,回調(diào)函數(shù)(err)); 刪除目錄
fs.readdir(目錄,回調(diào)函數(shù)(err,files)); 讀取目錄下所有文件
var fs= require("fs");
fs.writeFile('test.txt', 'Hello Node', function (err) {
if (err) throw err;
console.log('Saved successfully'); //文件被保存
});
url
parse解析url、返回一個json格式的數(shù)組。
var url = require('url');
url.parse('http://www.baidu.com');
format函數(shù)的作用與parse相反,它的參數(shù)是一個JSON對象,返回一個組裝好的url地址;
resolve函數(shù)的參數(shù)是兩個路徑,第一個路徑是開始的路徑或者說當前路徑,第二個則是想要去往的路徑,返回值是一個組裝好的url;
path
normalize函數(shù)將不符合規(guī)范的路徑經(jīng)過格式化轉(zhuǎn)換為標準路徑,解析路徑中的.與..外,還能去掉多余的斜杠。
var path = require('path');
var data = path.normalize('/path///normalize/hi/..'); // '/path/normalize/'
join函數(shù)將傳入的多個路徑拼接為標準路徑并將其格式化,返回規(guī)范后的路徑,避免手工拼接路徑字符串的繁瑣。
dirname函數(shù)用來返回路徑中的目錄名。
basename函數(shù)可返回路徑中的最后一部分,并且可以對其進行條件排除。
extname函數(shù)返回路徑中文件的擴展名(以最后一個'.'開始,返回'.'以及'.'以后的所有字符串,如沒有'.',則返回空字符串)。
stringify函數(shù)的作用就是序列化對象,也就是說將對象類型轉(zhuǎn)換成一個字符串類型(默認的分割符("&")和分配符("=")),querystring.stringify("對象","分隔符","分配符").
parse函數(shù)的作用就是反序列化字符串(默認是由"="、"&"拼接而成),轉(zhuǎn)換得到一個對象類型。
var querystring= require('querystring');
var result = querystring.stringify({foo:'bar',cool:['xux', 'yys']});
foo=bar&cool=xux&cool=yys
util模塊
一個Node.js核心模塊,提供常用函數(shù)的集合,用于彌補核心JavaScript的一些功能過于精簡的不足。
util.inspect(object,[showHidden],[depth],[colors])是一個將任意對象轉(zhuǎn)換為字符串的函數(shù),通常用于調(diào)試和錯誤輸出。
format函數(shù)根據(jù)第一個參數(shù),返回一個格式化字符串,第一個參數(shù)是一個可包含零個或多個占位符的字符串。每一個占位符被替換為與其對應(yīng)的轉(zhuǎn)換后的值,支持的占位符有:"%s(字符串)"、"%d(數(shù)字<整型和浮點型>)"、"%j(JSON)"、"%(單獨一個百分號則不作為一個參數(shù))"。
sArray函數(shù)可以判斷對象是否為數(shù)組類型,是則返回ture,否則為false。
isDate函數(shù)是可以判斷對象是否為日期類型,返回布爾值。
isRegExp函數(shù)可以判斷對象是否為正則類型,是則返回ture,否則返回false。
子進程 child_process
awn函數(shù)用給定的命令發(fā)布一個子進程,只能運行指定的程序,參數(shù)需要在列表中給出。
var child_process = require('child_process');
var child = child_process.spawn( command );
child.stdout.on('data', function(data) {
console.log(data);
});
exec也是一個創(chuàng)建子進程的函數(shù),與spawn函數(shù)不同它可以直接接受一個回調(diào)函數(shù)作為參數(shù),回調(diào)函數(shù)有三個參數(shù),分別是err, stdout , stderr,
var child_process = require('child_process');
child_process.exec( command , function(err, stdout , stderr ) {
console.log( stdout );
});
execFile函數(shù)與exec函數(shù)類似,但execFile函數(shù)更顯得精簡,因為它可以直接執(zhí)行所指定的文件。
var child_process = require('child_process');
child_process.execFile( file , function(err, stdout , stderr ) {
console.log( stdout );
});
fork函數(shù)可直接運行Node.js模塊,所以我們可以直接通過指定模塊路徑而直接進行操作。
var child_process = require('child_process');
child_process.fork( modulePath );