Nodejs REPL(Read-Eval-Print-Loop)

Arif Cakiroglu


REPL nedir?

Terminalden interaktif bir şekilde JavaScript çalıştırarak sonuçlarını görmeye yarar. Debug, test ya da bir şeyler denemek için kullanılabilir.

Hızlıca bazı kodları denemek istiyorsanız her defasında npm init ile bir proje yaratıp, bir index.js üzerinden çalışmaktansa terminalden sadece node yazarak Repl’e giriş yapmış oluyoruz.


nodejs-repl

Matematik işlemleri

λ node
> 6 * 2
12
> 2 + 2
4

Değişken tanımları

> var arr = [null, undefined, false]
undefined
> arr

// sonuç:
[ null, undefined, false ]

> arr.forEach(function(val) {
... console.log(val)
... });

// sonuç:
null
undefined
false

REPL özellikleri

_ altçizgi: en son çalıştırdığınız sorguyu işler

// değişkeni tanımladık
width = 3 + 5;
// altçizgi çıktı olarak işlemin sonucunu verdi
_
8
// sadece altçizgi yazarak işmele devam ediyoruz
> _ * 2
16

> a = [1,2,3]
[ 1, 2, 3 ]
> _.length
3

Multiline çalışmak

Yazıma başladığınızda göreceksinizki enter yaptığınızda yazdığınız kodu işleme alacaktır.

console.warn = function( e ) { process.stdout.write( e ) }
[Function]

Eğer yazacağınız fonksiyon fazla satır tutacaksa süslü parantezden sonra enter yaparsanız bir alt satıra geçecektir. Süslü parantezi kapadıktan sonra enter yaparsanız kodu işleme alacaktır.

var chalk = require('chalk');
undefined

console.warn = function( e ) {
...process.stdout.write( chalk.red(e) )
...process.exit(1)
...};

Not: Eğer multiline fonksiyon yazarken hatalı bir işlem yaparsanız kntrl+c yaparsanız çıkış yapacaktır. .clear ya da .break yazarak da çıkış yapabilirsiniz.

REPL komutları


.help komutları unuttuysanız hızlıca göz atabilirsiniz.

> .help
break    Sometimes you get stuck, this gets you out
clear    Alias for .break
exit    Exit the repl
help    Show repl options
load    Load JS from a file into the REPL session
save    Save all evaluated commands in this REPL session to a file

.break, .clear Multiline yazımda satırdan çıkmak ve işlemi iptal etmek için kullanılır.

.exit REPL’den çıkış yapar.

.save main.js REPL’den girmiş olduğunuz verileri saklamak isterseniz kullanabilirsiniz. main.js kaydedeceğimiz dosyanın ismi. İstediğiniz isimde kaydedebilirsiniz.

.load main.js Path belirtilerek REPL dosyasını tekrar çağırabilir ve kaldığınız yerden devam edebilirsiniz.

kntrl + c .break ile aynı işlemi yapar, içinde bulunulan fonksiyondan çıkış yapar.

kntrl + c (iki kere) REPL’den çıkmaya yarar.

tab Yazdığınız fonksiyon ve değişkenleri, global fonksiyonları görebilirsiniz. History olarak da tanımlayabiliriz.

tab çıktı örneği

Map                           Promise
Set                           Symbol
Uint16Array                   Uint32Array
Uint8Array                    Uint8ClampedArray
WeakMap                       WeakSet
dir                           a
assert                        b
buffer                        child_process
clearImmediate                clearInterval

Faydalı şeyler

REPL içindeyken ekranı temizlemek isterseniz kntrl + cmd + L yaparsanız ekranınız mis gibi olur yazmaya devam edebilirsiniz. clear komutuyla aynı işe yarar farkı REPL içerisinde clear ya da tanımlı herhangi bir Alias yazarsanız hata alırsınız. Bunun yerine kısayol ile hızlıca temizlik yapabilirsiniz ;)

Okuduğunuz için teşekkür ederim