Node.js

Node.js, Google'ın V8 JavaScript motoru üzerine inşa edilmiş, sunucu tarafı JavaScript çalıştırmak için kullanılan açık kaynaklı bir çalışma zamanı ortamıdır. Node.js, ağ uygulamaları, web sunucuları, API'ler ve mikro hizmetler gibi ölçeklenebilir ve hızlı uygulamalar oluşturmak için kullanılabilir. Node.js, asenkron programlama modelleri ve olay tabanlı giriş/çıkış işlemleri sağlar ve bu da yüksek performanslı ve verimli uygulamalar geliştirmeye yardımcı olur.

Node.js express Modülü kullanarak bir web sunucusu nasıl oluşturulur?

Node.js kullanarak bir web sunucusu oluşturmak için aşağıdaki adımları izleyebilirsiniz: Node.js'i bilgisayarınıza yükleyin. Bir komut istemi açın ve "npm init" komutunu çalıştırın. Bu, projeniz için package.json dosyasını oluşturacaktır. "npm install express" komutunu çalıştırarak Express.js kütüphanesini yükleyin. Aşağıdaki kodu bir JavaScript dosyasına kopyalayın ve dosyayı çalıştırın: const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => res.send('Hello World!')) app.listen(port, () => console.log(`Example app listening on port ${port}!`)) Bu kod, bir web sunucusunu oluşturur ve tarayıcınızda "http://localhost:3000" adresine gittiğinizde "Hello World!" yazısını gösterir.

Node.js ile MySQL veritabanı nasıl kullanılır?

Node.js ile MySQL veritabanına bağlantı kurmak için "mysql" paketini kullanabiliriz. Bunun için ilk önce 'npm i mysql' komutunu kullanarak mysql paketini yüklememiz gerekmektedir.  Devamında aşağıdaki kod bloğundakı gibi veritabanına bağlantı kurulup, SELECT, INSERT, UPDATE ve DELETE sorgularını kullana bilirsiniz. const mysql = require('mysql'); // Veritabanı bağlantısını oluşturma const con = mysql.createConnection({ host: "localhost", user: "kullanici_adi", password: "sifre", database: "veritabani_adi" }); // Veritabanına bağlanma con.connect(function(err) { if (err) throw err; console.log("Veritabanına bağlandı!"); // SELECT sorgusu con.query("SELECT * FROM tablo_adi", function (err, result, fields) { if (err) throw err; console.log(result); }); // INSERT sorgusu var sql = "INSERT INTO tablo_adi (kolon1, kolon2) VALUES ('deger1', 'deger2')"; con.query(sql, function (err, result) { if (err) throw err; console.log("1 kayıt eklendi"); }); // UPDATE sorgusu var sql = "UPDATE tablo_adi SET kolon1 = 'deger1' WHERE id = 2"; con.query(sql, function (err, result) { if (err) throw err; console.log(result.affectedRows + " kayıt güncellendi"); }); // DELETE sorgusu var sql = "DELETE FROM tablo_adi WHERE id = 3"; con.query(sql, function (err, result) { if (err) throw err; console.log(result.affectedRows + " kayıt silindi"); }); });

Puppeteer ile Node.js Kullanarak Farklı Web Sitelerinden Veri Çekme: Örnekler ve Kodlar

Node.js ve Puppeteer kullanarak farklı sitelerden veri çekmek için aşağıdaki kod örneklerini kullanabilirsiniz: İlk olarak, Puppeteer'ı kurmak için aşağıdaki komutu kullanabilirsiniz: npm install puppeteer Ardından, veri çekmek istediğiniz web sitelerine göre Puppeteer'ı kullanarak kodlar yazabilirsiniz. Örneğin, https://www.nike.com/ adresindeki ürünlerin fiyatlarını almak için aşağıdaki kodu kullanabilirsiniz: [[reklam]] const puppeteer = require('puppeteer'); (async () => {   const browser = await puppeteer.launch();   const page = await browser.newPage();   await page.goto('https://www.nike.com/');   await page.type('#TypeaheadSearchInput', 'shoes'); // arama kutusuna 'shoes' yazın   await page.keyboard.press('Enter'); // Enter tuşuna basın   await page.waitForSelector('.product-card__price'); // fiyatlar yüklenene kadar bekleyin   const prices = await page.evaluate(() => {     const priceElements = Array.from(document.querySelectorAll('.product-card__price'));     return priceElements.map(priceElement => priceElement.textContent);   });   console.log(prices);   await browser.close(); })(); Bu kodda, öncelikle Puppeteer'ı başlatıyoruz ve Nike web sitesine gidiyoruz. Daha sonra, arama kutusuna 'shoes' yazıp Enter tuşuna basarak arama sonuçlarını yüklüyoruz. Son olarak, fiyatları almak için .product-card__price sınıfına sahip tüm öğeleri seçiyoruz ve fiyatlarını bir dizi olarak döndürüyoruz. Benzer şekilde, https://www.amazon.com/ adresindeki ürünlerin fiyatlarını almak için aşağıdaki kodu kullanabilirsiniz: [[reklam]] const puppeteer = require('puppeteer'); (async () => {   const browser = await puppeteer.launch();   const page = await browser.newPage();   await page.goto('https://www.amazon.com/');   await page.type('#twotabsearchtextbox', 'laptop'); // arama kutusuna 'laptop' yazın   await page.keyboard.press('Enter'); // Enter tuşuna basın   await page.waitForSelector('.s-result-item .a-price-whole'); // fiyatlar yüklenene kadar bekleyin   const prices = await page.evaluate(() => {     const priceElements = Array.from(document.querySelectorAll('.s-result-item .a-price-whole'));     return priceElements.map(priceElement => priceElement.textContent);   });   console.log(prices);   await browser.close(); })(); Bu kodda da, öncelikle Puppeteer'ı başlatıyoruz ve Amazon web sitesine gidiyoruz. Daha sonra, arama kutusuna 'laptop' yazıp Enter tuşuna basarak arama sonuçlarını yüklüyoruz. Son olarak, fiyatları almak için .s-result-item .a-price-whole sınıfına sahip tüm öğeleri seçiyoruz ve fiyatlarını bir dizi olarak döndürüyoruz. Bu örneklerde, Puppeteer'ı kullanarak farklı sitelerden veri çekmek için birkaç tane daha örnek verebilirim. Örneğin, https://www.imdb.com/ adresindeki en popüler filmlerin isimlerini almak için aşağıdaki kodu kullanabilirsiniz: [[reklam]] const puppeteer = require('puppeteer'); (async () => {   const browser = await puppeteer.launch();   const page = await browser.newPage();   await page.goto('https://www.imdb.com/');   await page.click('#imdbHeader-navDrawerOpen--desktop'); // navigasyon menüsünü açın   await page.click('#imdbHeader-navDrawer > div > div:nth-child(2) > div:nth-child(2) > a'); // En Popülerler sayfasına gi   await page.waitForSelector('.titleColumn'); // filmler yüklenene kadar bekleyin   const movieTitles = await page.evaluate(() => {     const titleElements = Array.from(document.querySelectorAll('.titleColumn a'));     return titleElements.map(titleElement => titleElement.textContent.trim());   });   console.log(movieTitles);   await browser.close(); })(); Bu kodda, öncelikle Puppeteer'ı başlatıyoruz ve IMDb web sitesine gidiyoruz. Daha sonra, navigasyon menüsünü açarak En Popülerler sayfasına gidiyoruz. Son olarak, .titleColumn sınıfına sahip tüm öğeleri seçiyoruz ve filmlerin başlıklarını bir dizi olarak döndürüyoruz. Başka bir örnek olarak, https://www.airbnb.com/ adresindeki New York'taki en popüler konaklama yerlerinin adlarını almak için aşağıdaki kodu kullanabilirsiniz: [[reklam]] const puppeteer = require('puppeteer'); (async () => {   const browser = await puppeteer.launch();   const page = await browser.newPage();   await page.goto('https://www.airbnb.com/');   await page.type('input[data-testid="structured-search-input-field-location"]', 'New York'); // arama kutusuna 'New York' yazın   await page.keyboard.press('Enter'); // Enter tuşuna basın   await page.waitForSelector('.k7lz35f6'); // konaklama yerleri yüklenene kadar bekleyin   const placeNames = await page.evaluate(() => {     const nameElements = Array.from(document.querySelectorAll('.k7lz35f6 a'));     return nameElements.map(nameElement => nameElement.textContent.trim());   });   console.log(placeNames);   await browser.close(); })(); [[reklam]] Bu kodda da, öncelikle Puppeteer'ı başlatıyoruz ve Airbnb web sitesine gidiyoruz. Daha sonra, arama kutusuna 'New York' yazıp Enter tuşuna basarak konaklama yerlerinin sonuçlarını yüklüyoruz. Son olarak, .k7lz35f6 sınıfına sahip tüm öğeleri seçiyoruz ve konaklama yerlerinin adlarını bir dizi olarak döndürüyoruz. Bu örneklerde, Puppeteer'ı kullanarak farklı web sitelerinden veri çekebileceğinizi gösterdim. Ancak, her web sitesi farklı HTML yapısına ve CSS sınıflarına sahip olabilir, bu nedenle her bir web sitesi için özel olarak kod yazmanız gerekebilir. Ayrıca, web sitelerinin botlara karşı korunma önlemleri alması da mümkündür. Bu önlemler arasında CAPTCHA doğrulaması, botların engellenmesi veya IP adreslerinin engellenmesi gibi şeyler bulunabilir.

Express.js Kullanmanın Avantajları

Web uygulamaları geliştirmek istediğinizde, hızlı, esnek ve güçlü bir çözüm arıyorsanız, Express.js tam size göre olabilir. Express.js, popüler bir Node.js web uygulama çerçevesidir ve web geliştirme sürecini kolaylaştırır. Bu blog yazısında, Express.js kullanmanın sağladığı avantajları inceleyeceğiz ve neden bu çerçevenin birçok geliştirici tarafından tercih edildiğini keşfedeceğiz. [[reklam]] Minimal ve Esnek Yapı: Express.js, minimal ve esnek bir yapıya sahiptir. Birçok abartılı katman ve karmaşık özelliklerle yüklenmez. Bu, hızlı bir şekilde başlangıç yapmanızı ve uygulamanızı ihtiyaçlarınıza göre özelleştirmenizi sağlar. Modüler bir yapıya sahip olduğundan, Express.js'i diğer modüllerle kolayca entegre edebilir ve projenizin gereksinimlerine uyacak şekilde genişletebilirsiniz. [[reklam]] Hızlı ve Performanslı: Express.js, Node.js temelinde çalıştığı için hızlı ve performanslıdır. Node.js'nin olay yönlendirme modeli sayesinde asenkron bir şekilde çalışır ve çoklu işlemleri tek bir iş parçacığında gerçekleştirir. Bu da uygulamanızın daha hızlı çalışmasını sağlar. Ayrıca, Express.js'in sunduğu optimize edilmiş yönlendirme, oturum yönetimi ve diğer özellikler, performansınızı artırmaya yardımcı olur.   [[reklam]] İyi Belgeleme ve Geniş Topluluk Desteği: Express.js, oldukça iyi belgelenmiştir ve geniş bir topluluk desteği vardır. Resmi belgelerin yanı sıra, Express.js hakkında birçok kaynak, blog yazısı, video ve forum bulabilirsiniz. Bu, yeni başlayanlar için öğrenme sürecini kolaylaştırır ve sorunlarınıza hızlı çözümler bulmanıza yardımcı olur. Ayrıca, Express.js'in aktif bir topluluğu olduğu için, güncellemeler, düzeltmeler ve yeni özelliklerle desteklenir. [[reklam]] Esnek Yönlendirme ve Ortam Desteği: Express.js, yönlendirme konusunda esnek bir yapı sunar. Karmaşık yönlendirme işlemlerini kolayca gerçekleştirebilir ve URL rotalarını basit bir şekilde oluşturabilirsiniz. Ayrıca, Express.js, farklı ortamlar için yapılandırmaları destekler. Geliştirme, üretim ve test Node.js express Modülü kullanarak bir web sunucusu nasıl oluşturulur? yazıma da bakabilirsiniz :)

Node.js Kullanarak Telegram Botu Nasıl Oluşturulur?

Telegram Bot Token'ını alın: Telegram'da @BotFather botunu bulun. BotFather ile konuşun ve yeni bir bot oluşturmak için /newbot komutunu gönderin. Bot adını ve kullanıcı adını seçin. BotFather, size bir API token sağlayacak. Bu token'i bir yere kaydedin. Node.js projenizi oluşturun: Boş bir klasör oluşturun ve terminali açın. npm init komutunu kullanarak package.json dosyasını oluşturun. Gerekli paketleri yüklemek için aşağıdaki komutları çalıştırın: npm install node-telegram-bot-api Telegram botunu oluşturun: Proje klasörüne bot.js (veya istediğiniz başka bir isim) adında bir dosya oluşturun. Aşağıdaki örnek kodu bot.js dosyasına yapıştırın:   const TelegramBot = require('node-telegram-bot-api'); const token = 'YOUR_TELEGRAM_BOT_TOKEN'; const bot = new TelegramBot(token, {polling: true}); bot.on('message', (msg) => {   const chatId = msg.chat.id;   const messageText = msg.text;   if (messageText === '/start') {     bot.sendMessage(chatId, 'Hoş geldiniz!');   } else if (messageText === '/hello') {     bot.sendMessage(chatId, 'Merhaba!');   } else {     bot.sendMessage(chatId, 'Anlamadım.');   } });   Not: Yukarıdaki kodu kullanırken YOUR_TELEGRAM_BOT_TOKEN yerine Telegram BotFather'dan aldığınız API token'ını yerleştirin. Botu çalıştırın: Terminalde projenizin klasörüne gidin. node bot.js komutunu çalıştırarak botunuzu başlatın. Telegram'da botunuzu test edin: Telegram'da oluşturduğunuz botu bulun ve başlatın. Bot ile sohbet penceresini açın ve komutları deneyin: /start komutunu göndererek hoş geldiniz mesajını alın. /hello komutunu göndererek botun "Merhaba!" yanıtını alın. Başka bir mesaj göndererek botun "Anlamadım." yanıtını alın. Bu adımları izledikten sonra Node.js kullanarak Telegram botunuzu oluşturmuş olacaksınız. Bu basit örnek, gelen mesajları kontrol etmek ve yanıtlamak için node-telegram-bot-api kütüphanesini kullanmaktadır. İhtiyaçlarınıza ve projenizin gereksinimlerine bağlı olarak botunuzun davranışını daha fazla özelleştirebilirsiniz.