NodeJS serisi (3) / ALcatraz'

ALcatraz'

Kıdemli Üye
30 May 2013
4,338
4
İstanbul
Evet arkadaslar bu partta biraz modul yapisindan, js dosyalari arasinda veri aktarimindan ve clientten <html, json, text> dondurmeyi anlatmaya calisacagim.

Ilk olarak ilk 2 partta da kullandigimiz 'http' bir built-in moduldur, 'require' ile import ederiz.

Mesela reusibility bir islemi bize kolaylik acisindan modul olarak yazariz, her seferinde yazmak ile ugrasmayalim diye.

Ilk aklima gelen olarak bir log modulu yazalim, eger error veriyorsa default olarak atadigimiz error texti, vermiyor ise de Asayis berkemal adi altinda bize bir text gondersin.

Ilk olarak dosyamizi olusturalim, adini istediginiz gibi yapin.

alco.js olarak adlandiriyorum ben ve modulumuzu yazmaya baslayalim;

Kod:
var logText = {
    info:function(text) { // Modulumuze ilk once info fonksiyonunu tanimliyoruz.
        console.log("Text from log : " + text);
    },
    infoTwo:function(textTwo) { // Burada infoTwo adli fonksiyonumuzu tanimliyoruz.
        console.log("Text 2 from log : " + textTwo);
    }
};

module.exports = logText; // Modulumuzu disari aktariyoruz.
simdi index.js dosyamiza gelelim;

Kod:
var express = require('express');
var alco = require('./alco.js')
var app = express();
var server = app.use(function(req, res) {
    res.end("Nigss");
});
app.listen(64352);
alco.info('Yayinn basladi'); //Buraya info Fonksiyonumuza giden argumani yaziyoruz
Sunucumuzu calistirdigimizda bash'imizde "Text from log : Yayinn basladi" output'unu aliyoruz.

Zaten localhost'umuza gittigimizde response.end'le belirledigimiz text.

Bir sey eklemek istiyorum 'alco.js' de export ettigimiz object ne ise onun turunden export eder.

Biz fonksiyon export ettik 'alco' diye tanimladigimiz variable fonksiyon dondurmustur bize.

'index.js' ;

Kod:
var express = require('express');
var alco = require('./alco.js')
var app = express();
var server = app.use(function(req, res) {
    res.end(alco + ' Cok yakisiklii');
});
app.listen(64352);
'alco.js' ;

Kod:
var logText = "Alcatraz";

module.exports = logText;
Localhostumuzda cikan aci ama gercek : 'Alcatraz Cok yakisiklii'

Bir ornek daha yapalim pekistirmek amacli.

'alco.js' ;

Kod:
module.exports = function sayNigs() {
    console.log('Nigsss')
};
'index.js' ;

Kod:
var express = require('express');
var sayNigs = require('./alco.js')
var app = express();
var server = app.use(function(req, res) {
    res.end();
});
app.listen(64352);
sayNigs; //Output'umuz Nigsss olacaktir.
Her sey iyi hos bir de baska turden veriler yollayalim; html
Kod:
var express = require('express');
var app = express();
var server = app.use(function(req, res) {
    if(req.url == "/alcatraz"){
        res.setHeader('Content-Type', 'text/html');
        res.write("<html><body><i> Alcatraz sayfasini cagirdiniz</i><body></html>");
        //Html kodu gonderiyoruz 
    }
    res.end();
});
app.listen(64352);
Alcatraz routing'i 'Alcatraz sayfasini cagirdiniz' ve italic bir sekilde bize donduruyor.

Kod:
res.setHeader('Content-Type', 'text/html');
Satirini zaten ilk derste plaint olarak anlatmistim o yuzden aciklama geregi duymuyorum.

Diger kodlarimiz zaten ayni.

Json'a bakalim;

Kod:
var express = require('express');
var app = express();
var server = app.use(function(req, res) {
    if(req.url == "/alcatraz"){
        res.writeHead(200,('Content-Type','application/json')) // Yapmamiz gerekenn sadece Head'e json kodu oldugunu belirtmemiz.
        res.write(JSON.stringify({name:'Alcatraz', vorName:'Alco'})); // Ve JSON.stringify ile json kodumuzu yazmak.
        //JSon kodu gonderiyoruz
    }
    res.end();
});
app.listen(64352);
Simdi makale cok kisa oldugu icin birazda fs modulunden bahsedeyim acilimi filesystem'dir.
Dosya okumamiza, yazmamiza falan yarar. Her zamanki gibi require ile import edilir.

readFile ;

Kod:
var fs = require('fs'); // Modul import
fs.readFile("debs.txt", function(err,data){ // Dosyayi oku fonksiyon olustur error handling icin
    if (err) { // Eger error verirse
        throw err; // error'u output olarak ver
    }
    console.log(data); // Eger duzgun okunduysa, yaz
});
Simdi bu sekil calistirdigimizda karsimiza bir Buffer geliyor.

Bununn icin console.log(data.toString()); // toString ekliyoruz.


// Yani sira readFile'in 2 argumanini da kullanip "utf-8" eklersek yine ayni sonucu verecektir.


fs.readFile("debs.txt","utf-8", function(err,data){ // Gibisinden

writeFile ;

Kod:
var fs = require('fs'); // Modul import
fs.writeFile("nigs.txt","Icerigimiz" function(err){ // Dosyayi varsa yaz, yoksa olustur yaz.
    if (err) { // Eger error verirse
        throw err; // error'u output olarak ver
    }
    console.log("Islem basari ile tamamlandi");
});
Simdi nigs.txt'e dosyamiza Icerigimiz'i yazdi, ama eger txt dosyasinin icinde daha onceden kalma icerik vardi ise hepsini silip bizim yazdigimizi yazdi.
Ama biz varolanin altina eklemek istersek?

appendFile ;

Kod:
var fs = require('fs'); // Modul import
fs.appendFile("nigs.txt","Icerigimiz" function(err){ 
    if (err) { 
        throw err; 
    }
    console.log("Yaziniz eklenmistir");
});
Yazi ekleme islemi de appendFile ile oluyor.
Bir de dosya silme islemine bakalim ;

unLink ;

Kod:
var fs = require('fs'); // Modul import
fs.unLink("nigs.txt",function(err){ 
    if (err) { 
        throw err; 
    }
    console.log("Siliindi");
});
unLink'te tek arguman alir oda silinecek dosyadir.

Bir daha ki yazimda gorusmek uzere.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.