一、Node的REPL基本操作
REPL(Read-eval-print-loop):交互式解析器
在REPL環境下,可以定義和運行變量、函數、對象。
REPL的常用命令:
進入node,即進入了REPL環境,在命令窗口輸入node
退出:輸入.exit或者連續按ctrl+c兩次
點擊tab可以打印出Node.js中的所有對象
點擊向上/向下可以查看歷史命令
.save filename保存輸入的命令
.load filename加載文件
在REPL環境下,可以用_代替上一次表達式的結果
二、node讀寫文件
- 加載文件讀寫模塊
- 開始讀寫文件,readFile的參數一:要讀寫的文件路徑,參數二回調函數
- 捕獲異常,如果數據有異常就拋出異常,如果沒有異常就輸出
- 返回的數據是以十六進制輸出,為了得到正常數據,用toString方法
var fs=require("fs"); fs.readFile("data.json",function(error,data){ if(error){ throw error; } console.log(data.toString()); })
三、global的屬性和方法
- 在node中,沒有window,global相當於window,是頂級對象。
- setTimeout:定時器,在指定秒數后執行回調函數,如果指定秒數為0,在執行棧完成后再執行,存儲在異步隊列中。
- setImmediate:立即執行,在執行棧完成后再執行,存儲在異步隊列中,它和setTimeout時間為0的執行順序不確定。
- process.nextTick:將要執行的程序放在執行棧的最后。所以比setTimeout0和setImmediate先執行。
- setInterval:定時器,在規定時間內重復執行
setTimeout(function () { console.log("timeout"); }, 0); setImmediate(function(){ console.log("immediate"); }) console.log("執行棧"); process.nextTick(function(){ console.log("添加到執行棧末尾"); })
執行結果:
執行棧
添加到執行棧末尾
timeout
immediate
獲取路徑:
- __dirname :當前執行的js所在的文件夾
- __filename:當前執行的js的路徑
- process.cwd():當前執行node.exe的路徑