SSL Sertifikası + Sınırsız İçerik + Full SEO Uyumlu + Full Mobil Uyumlu.
Üstelik İsterseniz Yapay Zeka Hukuk Asistanı Seçeneğiyle
Node.js'te Promiseler ile Veritabanı İşlemleri
Node.js, geri dönüşü beklenen async işlemleri yönetmek için Promiselerin kullanılmasına olanak sağlar. Promiseler, daha düzenli ve okunabilir bir kod yazmamızı sağlayan bir yapıdır. Bu yazıda, Node.js'te Promiseleri kullanarak veritabanı işlemlerini yapmaktan ve bu konu hakkında detaylı örnekler vermekten bahsedeceğiz.
1. Promiselerin Tanımlanması:
Promiseler, yeni bir Promise nesnesi oluşturarak tanımlanır. Bu nesnenin içine, gerçekleştirilecek asenkron işlemi tanımlayan bir fonksiyon geçilir. Bu fonksiyon iki parametre alır: resolve ve reject. İşlem başarılı olduğunda resolve, hata durumunda ise reject fonksiyonu çalıştırılır.
```
const myPromise = new Promise((resolve, reject) => {
// asenkron işlem
if (/* işlem başarılı */) {
resolve('İşlem başarılı!');
} else {
reject('İşlem hatası!');
}
});
```
2. Veritabanı İşlemleri için Promiseler:
Veritabanı işlemleri de genellikle asenkron yapıdadır. Bu nedenle Promiseler, veritabanı işlemlerinde sıkça kullanılır. Örneğin, MongoDB veritabanına bir kayıt eklemek için kullanılan `insertOne()` fonksiyonu Promiseler ile kullanılabilir.
```
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
const dbName = 'mydb';
const insertDocument = (document) => {
return new Promise((resolve, reject) => {
MongoClient.connect(url, (err, client) => {
if (err) {
reject(err);
}
const db = client.db(dbName);
db.collection('documents').insertOne(document, (err, result) => {
if (err) {
reject(err);
}
resolve(result);
client.close();
});
});
});
};
// Örnek kullanım:
const newDocument = { name: 'John Doe', age: 25 };
insertDocument(newDocument)
.then((result) => {
console.log('Kayıt eklendi:', result);
})
.catch((err) => {
console.error('Hata:', err);
});
```
Yukarıdaki örnekte, `insertDocument` fonksiyonu Promiseler ile tanımlanmıştır. Bu fonksiyon `document` adında bir parametre alır ve bu parametreyi MongoDB veritabanında `documents` koleksiyonuna ekler. Fonksiyonun dönüş değeri olarak da Promise nesnesi döner. Bu nesne, `then()` ve `catch()` metotları ile kullanılır ve işlem sonucuna veya hata durumuna göre ilgili işlemler yapılır.
3. Örnekler:
a. MySQL ile Veri Getirme:
```
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydb',
});
const getData = () => {
return new Promise((resolve, reject) => {
connection.query('SELECT * FROM users', (err, rows) => {
if (err) {
reject(err);
} else {
resolve(rows);
}
});
});
};
// Örnek kullanım:
getData()
.then((rows) => {
console.log('Veriler:', rows);
})
.catch((err) => {
console.error('Hata:', err);
});
```
b. PostgreSQL ile Veri Güncelleme:
```
const { Pool } = require('pg');
const pool = new Pool({
user: 'postgres',
host: 'localhost',
database: 'mydb',
password: 'password',
port: 5432,
});
const updateData = (id, name) => {
return new Promise((resolve, reject) => {
const query = {
text: 'UPDATE users SET name = $1 WHERE id = $2',
values: [name, id],
};
pool.query(query, (err, result) => {
if (err) {
reject(err);
} else {
resolve(result);
}
});
});
};
// Örnek kullanım:
const userId = 1;
const newName = 'John Doe';
updateData(userId, newName)
.then((result) => {
console.log('Güncellendi:', result.rowCount, 'kayıt');
})
.catch((err) => {
console.error('Hata:', err);
});
```
4. Sık Sorulan Sorular:
S: Promiselerin avantajları nelerdir?
C: Promiseler, callback fonksiyonlarına göre daha okunabilir bir kod sağlar, kod karmaşıklığını azaltır ve hata yakalama işlemlerini kolaylaştırır.
S: Promiselerin dezavantajları nelerdir?
C: Promiseler, geri dönüş değeri Promise olan fonksiyonlarla çalışırken daha fazla kod gerektirebilir ve hataların nasıl yönetileceğini belirlemek zor olabilir.
S: Promiselerin alternatifleri nelerdir?
C: Callback fonksiyonları, Promiselerin öncesinde sıkça kullanılan bir yöntemdir. Async/await yapısı ise Promiseleri kullanarak daha basit ve okunabilir bir şekilde asenkron işlemleri yönetmeyi sağlar.
Promiseler, Node.js'te veritabanı işlemlerini yönetmek için oldukça kullanışlı bir araçtır. Bu yazıda, Promiselerin tanımlanması, veritabanı işlemleri için nasıl kullanılacağı ve detaylı örnekler verilmiştir. Bu sayede, Node.js projelerinde veritabanı işlemlerini daha düzenli ve anlaşılır bir şekilde yapabilirsiniz."
Node.js'te Promiseler ile Veritabanı İşlemleri
Node.js, geri dönüşü beklenen async işlemleri yönetmek için Promiselerin kullanılmasına olanak sağlar. Promiseler, daha düzenli ve okunabilir bir kod yazmamızı sağlayan bir yapıdır. Bu yazıda, Node.js'te Promiseleri kullanarak veritabanı işlemlerini yapmaktan ve bu konu hakkında detaylı örnekler vermekten bahsedeceğiz.
1. Promiselerin Tanımlanması:
Promiseler, yeni bir Promise nesnesi oluşturarak tanımlanır. Bu nesnenin içine, gerçekleştirilecek asenkron işlemi tanımlayan bir fonksiyon geçilir. Bu fonksiyon iki parametre alır: resolve ve reject. İşlem başarılı olduğunda resolve, hata durumunda ise reject fonksiyonu çalıştırılır.
```
const myPromise = new Promise((resolve, reject) => {
// asenkron işlem
if (/* işlem başarılı */) {
resolve('İşlem başarılı!');
} else {
reject('İşlem hatası!');
}
});
```
2. Veritabanı İşlemleri için Promiseler:
Veritabanı işlemleri de genellikle asenkron yapıdadır. Bu nedenle Promiseler, veritabanı işlemlerinde sıkça kullanılır. Örneğin, MongoDB veritabanına bir kayıt eklemek için kullanılan `insertOne()` fonksiyonu Promiseler ile kullanılabilir.
```
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
const dbName = 'mydb';
const insertDocument = (document) => {
return new Promise((resolve, reject) => {
MongoClient.connect(url, (err, client) => {
if (err) {
reject(err);
}
const db = client.db(dbName);
db.collection('documents').insertOne(document, (err, result) => {
if (err) {
reject(err);
}
resolve(result);
client.close();
});
});
});
};
// Örnek kullanım:
const newDocument = { name: 'John Doe', age: 25 };
insertDocument(newDocument)
.then((result) => {
console.log('Kayıt eklendi:', result);
})
.catch((err) => {
console.error('Hata:', err);
});
```
Yukarıdaki örnekte, `insertDocument` fonksiyonu Promiseler ile tanımlanmıştır. Bu fonksiyon `document` adında bir parametre alır ve bu parametreyi MongoDB veritabanında `documents` koleksiyonuna ekler. Fonksiyonun dönüş değeri olarak da Promise nesnesi döner. Bu nesne, `then()` ve `catch()` metotları ile kullanılır ve işlem sonucuna veya hata durumuna göre ilgili işlemler yapılır.
3. Örnekler:
a. MySQL ile Veri Getirme:
```
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydb',
});
const getData = () => {
return new Promise((resolve, reject) => {
connection.query('SELECT * FROM users', (err, rows) => {
if (err) {
reject(err);
} else {
resolve(rows);
}
});
});
};
// Örnek kullanım:
getData()
.then((rows) => {
console.log('Veriler:', rows);
})
.catch((err) => {
console.error('Hata:', err);
});
```
b. PostgreSQL ile Veri Güncelleme:
```
const { Pool } = require('pg');
const pool = new Pool({
user: 'postgres',
host: 'localhost',
database: 'mydb',
password: 'password',
port: 5432,
});
const updateData = (id, name) => {
return new Promise((resolve, reject) => {
const query = {
text: 'UPDATE users SET name = $1 WHERE id = $2',
values: [name, id],
};
pool.query(query, (err, result) => {
if (err) {
reject(err);
} else {
resolve(result);
}
});
});
};
// Örnek kullanım:
const userId = 1;
const newName = 'John Doe';
updateData(userId, newName)
.then((result) => {
console.log('Güncellendi:', result.rowCount, 'kayıt');
})
.catch((err) => {
console.error('Hata:', err);
});
```
4. Sık Sorulan Sorular:
S: Promiselerin avantajları nelerdir?
C: Promiseler, callback fonksiyonlarına göre daha okunabilir bir kod sağlar, kod karmaşıklığını azaltır ve hata yakalama işlemlerini kolaylaştırır.
S: Promiselerin dezavantajları nelerdir?
C: Promiseler, geri dönüş değeri Promise olan fonksiyonlarla çalışırken daha fazla kod gerektirebilir ve hataların nasıl yönetileceğini belirlemek zor olabilir.
S: Promiselerin alternatifleri nelerdir?
C: Callback fonksiyonları, Promiselerin öncesinde sıkça kullanılan bir yöntemdir. Async/await yapısı ise Promiseleri kullanarak daha basit ve okunabilir bir şekilde asenkron işlemleri yönetmeyi sağlar.
Promiseler, Node.js'te veritabanı işlemlerini yönetmek için oldukça kullanışlı bir araçtır. Bu yazıda, Promiselerin tanımlanması, veritabanı işlemleri için nasıl kullanılacağı ve detaylı örnekler verilmiştir. Bu sayede, Node.js projelerinde veritabanı işlemlerini daha düzenli ve anlaşılır bir şekilde yapabilirsiniz."
*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle