Node.js'i herhangi bir argüman kullanmadan başlatırsanız, REPL komut satırını göreceksiniz.
Örnek
gy:bin gy$ node
>
Burada JavaScript kodlarını çalıştırabilirsiniz ancak tarayıcı tarafındaki geliştiriciler, büyük ihtimalle konsola bilgi yazma ya da hata ayıklama (debug) işlemleriyle ilgili olarak console.log komutu ile ilgilenecektir. Aşağıda console nesnesi metotları listelenmiştir:
- console.log([data], [...])
- console.info([data], [...])
- console.error([data], [...])
- console.warn([data], [...])
- console.dir(obj)
- console.time(label)
- console.timeEnd(label)
- console.trace(label)
- console.assert(expression, [message])
Aşağıda bu metotlar hakkında pratik bilgiler vereceğiz.
console.log([data], [...])
console.log() metodu stdout dosyasına yeni bir satır açarak yazma işlemini gerçekleştirir. C'deki printf() fonksiyonuna benzer şekilde çok sayıda argüman da alabilir.
Örnek
Log.js adlı programı aşağıdaki gibi oluşturunuz:
console.log("Wolfgang Amadeus Mozart");
console.log("Fiyat= "+4000+" miktar= "+67);
Kodu çalıştırdığınızda aşağıdaki çıktıyı elde edeceksiniz:
gy:bin gy$ node log.js
Wolfgang Amadeus Mozart
Fiyat= 4000 miktar= 67
Console.log() fonksiyonuyla yazdırma işlemi esnasında isterseniz format bilgisi kullanabilirsiniz. Aşağıdaki tabloda bu konuda bilgi verilmektedir:
Biçim | Anlamı |
%s | String türü veri formatı |
%d | Tamsayı türü veri formatı |
%j | Json veri formatı |
Örnek kod
var ad = 'ayse okan',
yas= 25,
ilg_bol= {
bolum1: 'satis',
bolum2: 'pazarlama'};
console.log('ad...%s,'
+'\n'+ 'yas.... %d,'
+'\n'+ 'ilgilendigi bolumler...%j',
ad, yas, ilg_bol);
Örnek kodun çıktısı
gy:bin gy$ node log.js
ad...ayse okan,
yas.... 25,
ilgilendigi bolumler...{"bolum1":"satis","bolum2":"pazarlama"}
console.info([data], [...])
İşlevi console.log() fonksiyonuyla aynıdır.
Örnek
var ad = 'ayse okan',
yas= 25,
ilg_bol= {
bolum1: 'satis',
bolum2: 'pazarlama'};
console.info('ad...%s,'
+'\n'+ 'yas.... %d,'
+'\n'+ 'ilgilendigi bolumler...%j',
ad, yas, ilg_bol);
Örnek kodun çıktısı
gy:bin gy$ node log.js
ad...ayse okan,
yas.... 25,
ilgilendigi bolumler...{"bolum1":"satis","bolum2":"pazarlama"}
console.error([data], [...])
console.error() metodu, aynen console.log metodu gibi çalışır. Tek fark, çıktının stdout yerine stderr ortamına verilmesidir. stderr ortamına yazma, daima senkron işlem ile olduğu için console.error fonksiyonunun kullanıldığı fonksiyonlar ya da stderr ortamı ile çalışan diğer fonksiyonlar, yazma işlemi bitene kadar işleminizi bloke edecektir.
Bu metot hata mesajlarının yazdırılması için uygundur; fakat aşırı kullanılması işleminizi çok yavaşlatacaktır.
Örnek kod
Aşağıdaki kodu err.js adı ile saklayın ve çalıştırın.
var error = new Error('yeni akim');
console.error( error.stack );
Programın çalışması sonucunda aşağıdaki hata mesajlarını alacaksınız:
Örnek kodun çıktısı
gy:bin gy$ node err.js
Error: yeni akim
at Object.<anonymous> (/usr/local/bin/err.js:1:75)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
console.warn([data], [...])
console.warn() metodu, console.error() metodu ile aynıdır. Aşağıdaki örnekte 'fs' modülü, belirli bir dosyayı açmak için kullanılıyor. Dosya başarı ile açılırsa, console.log() fonksiyonu bir mesaj yazıyor; eğer bir hata oluşursa, console.warn() metodu ile uyarı, stderr ortamına yazılıyor.
Örnek kod
var fd = require("fs");
var yol= "dosya.txt";
fd.open(yol, "r", function(err, fd){
if (err){
console.warn(err);
}
else{
console.log("DOSYA BASARI ILE ACILDI..." + yol);
}
})
Örnek kodun çıktısı
dosya.txt mevcut olduğu için program başarıyla çalışmış ve aşağıdaki çıktıyı vermiştir:
gy:bin gy$ node err.js
DOSYA BASARI ILE ACILDI...dosya.txt
Örnek kodun çıktısı 2
Yukardaki örnek kodun ikinci satırını, var yol= "y.txt"; şeklinde değiştirin ve yeniden çalıştırın. Bu kez aşağıdaki çıktıyı alacaksınız:
gy:bin gy$ node err.js
{ [Error: ENOENT, open 'y.txt'] errno: 34, code: 'ENOENT', path: 'y.txt' }
y.txt mevcut olmadığı için bu uyarı mesajı yazılmıştır.
console.dir(obj)
stdout ortamına bilgi yazar; console.log'a benzer.
Örnek kod
var fd = require("fs");
var yol= "dosya.txt";
fd.open(yol, "r", function(err, fd){
if (err){
console.warn(err);
}
else{
console.dir("DOSYA BASARI ILE ACILDI..." + yol);
}
})
Örnek kodun çıktısı
gy:bin gy$ node err.js
'DOSYA BASARI ILE ACILDI...xx.txt'
console.time(etiket)
console.time() metodu bir kronometreyi başlatır. Bir işlemin ne kadar sürdüğünü izlemek için kullanılabilir. Belirli bir string türü etiket kronometrenin başlangıç noktasını simgeler.
console.timeEnd(etiket)
console.timeEnd() fonksiyonu, console.time() metodu ile başlatılan kronometreyi durdurur.
Örnek kod: console.time() ve console.timeEnd()
console.time('kronometre1');
var top = 0;
for (var x=1; x<=20000; x++)
{
top += x;
}
//console.log('TOPLAM='+top);
console.log('TOPLAM(!+..20000) ICIN GECEN ZAMAN...');
console.timeEnd('kronometre1');
Örnek kodun çıktısı
gy:bin gy$ node err.js
TOPLAM(!+..20000) ICIN GECEN ZAMAN...
kronometre1: 2ms
console.trace(etiket)
console.trace() metodu, stderr ortamına yazan yığının (stack) o andaki pozisyonunu gösterir.
Örnek kod
> console.trace()
Örnek kodun çıktısı
Trace
at repl:1:10
at REPLServer.self.eval (repl.js:110:21)
at Interface.<anonymous> (repl.js:239:12)
at Interface.emit (events.js:95:17)
at Interface._onLine (readline.js:202:10)
at Interface._line (readline.js:531:8)
at Interface._ttyWrite (readline.js:760:14)
at ReadStream.onkeypress (readline.js:99:10)
at ReadStream.emit (events.js:98:17)
at emitKey (readline.js:1095:12)
undefined
>
Örnek kod
> console.trace('deneme.js')
Örnek kodun çıktısı
Trace: deneme.js
at repl:1:10
at REPLServer.self.eval (repl.js:110:21)
at Interface.<anonymous> (repl.js:239:12)
at Interface.emit (events.js:95:17)
at Interface._onLine (readline.js:202:10)
at Interface._line (readline.js:531:8)
at Interface._ttyWrite (readline.js:760:14)
at ReadStream.onkeypress (readline.js:99:10)
at ReadStream.emit (events.js:98:17)
at emitKey (readline.js:1095:12)
undefined
>
console.assert(ifade, [mesaj])
console.assert() metodu, bir ifadenin doğru olup olmadığını test eder. İfade false olarak hesaplanırsa hata mesajı verir.
Örnek kod
> console.assert(3<3,'ESITLIK');
Örnek kodun çıktısı
AssertionError: ESITLIK
at Console.assert (console.js:102:23)
at repl:1:9
at REPLServer.self.eval (repl.js:110:21)
at repl.js:249:20
at REPLServer.self.eval (repl.js:122:7)
at Interface.<anonymous> (repl.js:239:12)
at Interface.emit (events.js:95:17)
at Interface._onLine (readline.js:202:10)
at Interface._line (readline.js:531:8)
at Interface._ttyWrite (readline.js:760:14)
>
Örnek kod
> console.assert(3==3,'ESITLIK');
Örnek kodun çıktısı
undefined
>