ETİKETLER
web-programlama
Connect HTTP Orta Katman Ürün Çatı Yazılımı
Node yazılımı içinde bazı HTTP uygulamalarını kolaylaştırmak amacıyla yerleştirilmiş, çatı yazılımlar da mevcuttur. Bunlardan biri de Connect yazılımıdır. Connect, orta katman (middleware) ürün bileşenleri için bir model tanımlar ve onların çalıştırılabilmesi için bir işlem gücü sunar.
Genel olarak orta katman ürün bileşenleri, programcı tarafından bir yığınla birlikte tutulabilir. Connect, HTTP istemi aldığı zaman, orta katman ürün motoru bunları sırayla çağırır.
Node.js'te Connect ile Web Sunucuya Bağlanma
Node.js, ortak ağ uygulamaları için, temel API'ler (Application Program Interface - Uygulama Programı Arayüzü) sağlar. Bunlar arasında en çok ihtiyaç duyacaklarınız, HTTP ve TCP ile ilgili API'lerdir.
Oysa, gerçek dünya uygulamalarında peş peşe API'ler kullanmak yerine, bazen daha basit metotlar tercih edilir. Connect bu anlamda bir araç kutusudur. İstemler (requests) ve cevaplar (responses) arasındaki arayüzü organize etmekte yeni bir yol sunmaktadır. Orta katman ürünü (Middleware) olarak da anılır.
Bir Dosyanın Adını Değiştirmek: Rename Fonksiyonu
Aşağıdaki kodla, gyDosya.txt dosyasının adı test.txt olarak değiştiriliyor.
var fs = require('fs');
fs.rename('/usr/local/bin/gyDosya.txt', '/usr/local/bin/test.txt', function (err) {
if (err) throw err;
fs.stat('/usr/local/bin/test.txt', function (err, stats) {
if (err) throw err;
console.log('stats: ' + JSON.stringify(stats));
});
});
Aşağıdaki ekran görüntüsünde de görülebileceği üzere değişiklik işlemi tamamlandı:
Verilen Bir Dizin İçindeki Dosyaların İsimlerini Listelemek
Aşağıdaki örnek Node.js koduyla, o anda çalışılan aktif dizindeki tüm dosya isimleri listeleniyor. O andaki aktif dizinse, '.' sembolleriyle belirtiliyor.
var fs = require('fs');
fs.readdir('.', function (err, files) {
if (err)
throw err;
for (var index in files) {
console.log(files[index]);
}
});
Programın çıktısı ise aşağıdadır:
Dosya ile İlişkili İstatistiksel Bilgiler
Birçok durumda, dosyanın boyutu, oluşturulduğu tarih, dosya üzerindeki izinler gibi istatistiki bilgilere ihtiyaç duyulabilir. Bu amaçla, Node.js'te,
fs.stat
fonksiyonu kullanılabilir. Aşağıdaki kodu st.js adıyla oluşturun ve çalıştırın.
var fs = require('fs');
fs.stat('/usr/local/bin/gyDosya.txt', function(err, stats) {
if (err) { throw err;}
console.log(stats); });
gyDosya.txt isimli dosyanızın içeriğine göre aşağıdaki bilgileri elde edeceksiniz:
Dosyaya Bilgi Kaydetme - writeFile Komutu
Node.js'te bir dosyaya bilgi kaydetmek için, writeFile fonksiyonu kullanılabilir. Aşağıdaki örnekte, Node.js programında gyDosya.txt dosyası üzerine yeni veri yazılarak içerik değiştiriliyor.
var fs = require('fs');
fs.writeFile('gyDosya.txt', 'Turkcell Gelecegi Yazanlar' , function (err) {
if (err) return console.log(err);
console.log('gyDosya.txt NIN ICERIGI DEGISTI');
});
fs.readFile("gyDosya.txt", "utf8", function(hata, veri) {
console.log(veri);
});
Programı op.js adı ile oluşturduk ve sakladık.
readFile Fonksiyonu
Bir dosyanın tümünü birden, aynı anda tampon belleğe okumak için, readFile fonksiyonu kullanılacaktır. Bu durumda program çok basit hale gelir:
var fs = require("fs");
fs.readFile("gyDosya.txt", "utf8", function(hata, veri) {
console.log(veri);
});
op.js adıyla sakladığınız programı çalıştırınca aşağıdaki sonuç elde ediliyor:
Open() Fonksiyonu
open() fonksiyonu, dosya ile bellek (memory) arasındaki iletişim kanalını aktif hale getirir. open() fonksiyonunun parametreleri, dosya adı ve dosyanın açılış modudur. Dosya adı, yolu ile belirtilebilir. Dosyanın açılış moduyla ilgili parametre değerleri ise aşağıdaki tabloda verilmiştir:
Dosya Sistemi (File System) Modülü
Öntanımlı olarak, Node.js kurulumları içinde, dosya sistemi modülü (file system module) mevcut. fs adı verilen bu modül, Node.js’teki dosya işlemleri için bir temel çerçeve oluşturur. Aşağıda verilen örnek program, bellekte bulunan bir metin dosyasının içeriğini konsolda listeler.
exists() fonksiyonu belirtilen dosyanın mevcut olup olmadığını kontrol eder. Mevcutsa true, değilse false değerini gönderir.
stat() fonksiyonu ise belirtilen dosyanın byte cinsinden uzunluğunu bulur.