Node.js 基礎(一)

剛接觸Node.js環境,實用的語言仍是JavaScript因此語法不用多說、主要關心的是Node.js環境跟瀏覽器中的JavaScript環境的區別。node

console

雖然這個在瀏覽器的js環境中也常常用,但再node中更常見。程序的調試信息和日誌都用它來輸出。web

###console.log()json

打印日誌到標準輸出流(stdout)並換行數組

console.log('This is Log!');

This is Log!瀏覽器

還能夠把程序中的變量格式化輸出, 支持%s%d%j等佔位符, 分別輸出字符串、數字、json對象。webstorm

var name = 'UgCode';
var old = 18;
console.log('My name is %s', name);
console.log('I am %d', old);

My name is UgCode I am 18函數

###console.info()編碼

其實這跟console.log是同樣同樣滴!操作系統

###console.error()命令行

這個也跟console.log很像,不過它輸出到標準錯誤流(stderr). 當把輸出流重定向到日誌文件的時候,這些錯誤是不會寫入文件的。

console.log('This is Log!');
console.error('This is Error!');
node console.js 1>log.txt

打開log.txt文件發現只有This is Log!。 這裏數字1表明的就是標準輸出流, 若是改爲2就是把錯誤流寫到文件中。

###console.warn() 同理, 跟console.error同樣。

###console.time()/console.timeEnd()

這兩個方法是一對, 用來計算代碼執行的時間的。

console.time啓動一個計時器,給個字符串參數用來標識這個計時器, 當代碼結束時用console.timeEnd來打印這段代碼執行了多長時間。

console.time('time');
var j = 0;
for (var i=0; i < 1000000; i++) {
    j += i;
}
console.timeEnd('time');
console.log('j = ' + j);

time: 62ms j = 499999500000

global 全局變量

幾個經常使用的全局變量

###__dirname 該變量是當前運行的js文件所在目錄的絕對路徑

console.log(__dirname);

/Users/UgCode/webstormprojects/TestNodeJS

###__filename 該變量是當前運行的js文件的絕對路徑

console.log(__filename);

/Users/UgCode/webstormprojects/TestNodeJS/process.js

process

###process.stdout 輸出標準輸出流:

process.stdout.write('This is Stdout');

This is Stdout

###process.stderr 標準錯誤流:

process.stderr.write('This is Stderr');

This is Stderr

其實console.log也是調用這個方法來輸出的:

console.log = function(d) {
  process.stdout.write(d + '\n');
};

###process.stdin.on() 使用process.stdin.on能夠接受用戶鍵盤輸入。 在以前要先設置它的編碼格式:

process.stdin.setEncoding('utf-8');

process.stdin.on方法能夠註冊一些回調函數來接受用戶的鍵盤輸入:

process.stdin.setEncoding('utf-8');
//data函數能夠返回用戶輸入的內容
process.stdin.on('data', function(data){
    console.log(data);
});

命令行運行文件之後能夠發現程序暫停並等待用戶輸入,輸入內容回車之後會輸出你剛纔輸入的內容。control+c來退出程序。

//readable函數沒有參數, 要用stdin手動讀取用戶輸入
process.stdin.on('readable', function(){
    var data = process.stdin.read();
    console.log(data);
});

命令行運行結果跟上面差很少。

###process.cwd() 輸出當前命令行所在位置的路徑:

console.log(process.cwd());

###process.on() process.on經過註冊回調函數,能夠響應操做系統的一些事件。

程序正常退出時回調exit函數:

process.on('exit', function(){
    console.log('程序關閉!');
});

程序收到中斷命令時回調SIGINT

process.on('SIGINT', function(){
    console.log('程序被終止');
    //退出程序
    process.exit();
});

###process.argv 這個你們應該不陌生,是程序啓動時輸入的參數。 process.argv是一個數組。 第一個參數是執行使用的命令,Node.js環境中就是node, 第二課參數是執行文件的路徑, 後面是輸入的參數。 好比:

console.log(process.argv);

運行該文件並輸入一些參數

$ node argv.js 參數1 參數2 參數3 參數n

輸出結果

argv:["node","/Users/UgCode/webstormprojects/TestNodeJS/argv.js","參數1","參數2","參數3","參數n"]

相關文章
相關標籤/搜索