PouchDB এর সাথে Angular Integration গাইড ও নোট

Database Tutorials - পাউচডিবি (PouchDB) - PouchDB এবং Web Application Integration
327

PouchDB একটি ওপেন সোর্স JavaScript ডেটাবেস, যা ব্রাউজারের মধ্যে সংরক্ষিত ডেটা পরিচালনা করার জন্য ব্যবহৃত হয়। এটি একটি ক্লায়েন্ট-সাইড ডেটাবেস যা সিঙ্ক্রোনাইজেশন সমর্থন করে, অর্থাৎ ব্রাউজারের মধ্যে থাকা ডেটা সার্ভারের সাথে সিঙ্ক করা যেতে পারে। Angular এ PouchDB ব্যবহার করার মাধ্যমে আপনি উন্নত ক্লায়েন্ট-সাইড ডেটাবেস সমাধান তৈরি করতে পারেন।

এই টিউটোরিয়ালে আমরা দেখব কিভাবে Angular অ্যাপ্লিকেশনে PouchDB ব্যবহার করে একটি সাধারন ডেটাবেস পরিচালনা করতে হয়।


PouchDB ইনস্টলেশন

Angular প্রকল্পে PouchDB ব্যবহার করার জন্য প্রথমে আপনাকে PouchDB প্যাকেজটি ইনস্টল করতে হবে। এটি করার জন্য নিচের কমান্ডটি ব্যবহার করুন:

npm install pouchdb

এটি PouchDB এর অফিসিয়াল JavaScript লাইব্রেরি আপনার প্রকল্পে ইনস্টল করবে।


Angular অ্যাপ্লিকেশনে PouchDB ইমপোর্ট করা

PouchDB সফলভাবে ইনস্টল করার পর, আপনাকে এটি আপনার Angular অ্যাপে ইমপোর্ট করতে হবে। আপনার অ্যাপ্লিকেশনের সংশ্লিষ্ট মডিউলে (যেমন app.module.ts) এই লাইব্রেরিটি ইমপোর্ট করুন।

import PouchDB from 'pouchdb';

PouchDB ডাটাবেস তৈরি এবং ডেটা ইনসার্ট করা

Angular কম্পোনেন্টে PouchDB ব্যবহার করতে নিচের কোডটি ব্যবহার করতে পারেন। উদাহরণস্বরূপ, একটি কম্পোনেন্ট তৈরি করা হলো যেখানে PouchDB ডাটাবেস তৈরি করা হবে এবং কিছু ডেটা ইনসার্ট করা হবে।

import { Component, OnInit } from '@angular/core';
import PouchDB from 'pouchdb';

@Component({
  selector: 'app-pouchdb-example',
  templateUrl: './pouchdb-example.component.html',
  styleUrls: ['./pouchdb-example.component.css']
})
export class PouchdbExampleComponent implements OnInit {
  private db: any;

  constructor() { }

  ngOnInit(): void {
    // নতুন ডাটাবেস তৈরি
    this.db = new PouchDB('my_database');
    
    // ডেটা ইনসার্ট করা
    const doc = {
      _id: 'doc1',
      name: 'John Doe',
      age: 30,
      city: 'New York'
    };

    this.db.put(doc).then(() => {
      console.log('Document inserted successfully');
    }).catch(err => {
      console.error('Error inserting document: ', err);
    });
  }
}

এই কোডে, my_database নামের একটি নতুন ডাটাবেস তৈরি করা হয়েছে এবং একটি ডকুমেন্ট (যেমন name, age, city সহ) ডাটাবেসে ইনসার্ট করা হয়েছে।


ডেটা পড়া এবং দেখানো

PouchDB থেকে ডেটা পড়তে নিচের কোডটি ব্যবহার করা যায়:

// ডেটা পড়া
this.db.get('doc1').then(doc => {
  console.log('Document fetched:', doc);
}).catch(err => {
  console.error('Error fetching document:', err);
});

এই কোডে, আমরা doc1 আইডির ডেটা পড়ে কনসোলে প্রদর্শন করছি।


ডেটা আপডেট করা

PouchDB তে ডেটা আপডেট করতে, প্রথমে সংশ্লিষ্ট ডকুমেন্টটি পাওয়া উচিত এবং তারপর তা আপডেট করা হয়:

// ডেটা আপডেট করা
this.db.get('doc1').then(doc => {
  doc.age = 31; // বয়স আপডেট
  return this.db.put(doc);  // আপডেট ডকুমেন্ট
}).then(() => {
  console.log('Document updated successfully');
}).catch(err => {
  console.error('Error updating document:', err);
});

ডেটা ডিলিট করা

PouchDB থেকে ডেটা মুছে ফেলার জন্য নিচের কোডটি ব্যবহার করতে হবে:

// ডেটা ডিলিট করা
this.db.get('doc1').then(doc => {
  return this.db.remove(doc);  // ডকুমেন্ট মুছে ফেলা
}).then(() => {
  console.log('Document deleted successfully');
}).catch(err => {
  console.error('Error deleting document:', err);
});

ডেটা সিঙ্ক্রোনাইজেশন

PouchDB একটি সুবিধা দেয়, সেটি হল সিঙ্ক্রোনাইজেশন, যেখানে ক্লায়েন্ট সাইডের ডেটা সার্ভারের সাথে সিঙ্ক করা যায়। এখানে একটি সিঙ্ক্রোনাইজেশন উদাহরণ:

// সার্ভারের URL
const remoteDB = new PouchDB('https://your-server-url.com/my_database');

// ক্লায়েন্ট ডেটাবেস এবং সার্ভারের ডেটাবেস সিঙ্ক করা
this.db.sync(remoteDB, {
  live: true,  // লাইভ সিঙ্ক্রোনাইজেশন
  retry: true  // রিট্রাই পলিসি
}).on('change', (info) => {
  console.log('Sync change:', info);
}).on('error', (err) => {
  console.error('Sync error:', err);
});

এই কোডে, live: true ব্যবহার করার মাধ্যমে সিঙ্ক্রোনাইজেশন লাইভ করা হচ্ছে, অর্থাৎ ডেটাবেসে কোনো পরিবর্তন ঘটলে তা স্বয়ংক্রিয়ভাবে সার্ভারের সাথে সিঙ্ক হয়ে যাবে।


সারাংশ

এভাবে, Angular অ্যাপ্লিকেশনে PouchDB ব্যবহারের মাধ্যমে ক্লায়েন্ট-সাইড ডেটাবেস তৈরি ও পরিচালনা করা যেতে পারে। আপনি ডেটা ইনসার্ট, আপডেট, ডিলিট, এবং সিঙ্ক্রোনাইজেশনসহ বেশ কিছু অপারেশন করতে পারবেন। এটি বিশেষ করে অফলাইন মোডে ডেটা পরিচালনা করতে এবং পরে সার্ভারের সাথে সিঙ্ক করার ক্ষেত্রে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...