Node里面的全局對象(一)Process與__filename
(1)__filename
__filename:返回當(dāng)前模塊文件解析后的絕對路徑,該屬性并非全局,而是模塊作用域下
console.log(global.__filename); //undefined
console.log(__filename); //正確
(2)__dirname
返回當(dāng)前模塊文件所在目錄(找的是文件夾而不是文件)解析后的絕對路徑愁铺,該屬性并非全局鹰霍,而是模塊作用域下
console.log(__dirname);
//命令行形式的時鐘
setInterval(function(){
var d = new Date();
console.log('現(xiàn)在是:' + d.getFullYear() + '年' + (d.getMonth()+1) + '月' + d.getDate() + '日' + d.getHours() + " : " + d.getMinutes() + ' : ' + d.getSeconds());}, 1000);
(3)process全局對象,通過這個對象提供的屬性和方法,使我們可以對當(dāng)前的程序進(jìn)程進(jìn)行訪問
console.log(process);
- argv: - Array -組包含命令行參數(shù)的數(shù)組茵乱,第一個元素是node,第二個元素是js文件的名稱茂洒,接下來的元素依次是命令行傳入的參數(shù)
- execPath: - 開啟當(dāng)前進(jìn)程的絕對路徑
- env: -返回用戶環(huán)境信息
console.log(process.argv);
console.log(process.env);
- 具體幾個參數(shù)(了解就好)
version: -返回版本的信息
versions: - 返回node以及node依賴包版本信息
pid: - 當(dāng)前進(jìn)程的ID
title: - 當(dāng)前進(jìn)程的名稱
arch:返回當(dāng)前CPU處理器框架
exit(code): 退出
kill(pid): - 想進(jìn)程發(fā)送信息
重要的process的還是標(biāo)準(zhǔn)輸入輸出流
- process.stdin(標(biāo)準(zhǔn)輸入流)輸出process.stdout(標(biāo)準(zhǔn)輸出流)
- process.stdout.write("hello");向用戶輸出
- 默認(rèn)情況下process的輸入時關(guān)閉的。要是想監(jiān)聽必須要開啟
-
process.stdin.resume(); //這句話就表示開啟用戶輸入模式
process.stdin.on('data',function(chunk){
console.log("用戶輸入了"+chunk);
})
下面這個例子就是監(jiān)聽用戶輸入的數(shù)據(jù)并且計算
var a;
var b;
process.stdin.resume(); //開啟監(jiān)聽設(shè)備
process.stdin.on('data',function(data){
if(!a)
{
a = Number(data);
}else
{
b= Number(data);
process.stdout.write("最后的結(jié)果:"+(a+b));
process.exit();
}
})
效果圖如下: