BackboneJS একটি খুবই লাইটওয়েট ফ্রেমওয়ার্ক যা Model এর মাধ্যমে ডেটার সাথে কাজ করে। মডেলগুলোর মধ্যে ডেটার ভ্যালিডেশন বা যাচাই (validation) করার জন্য BackboneJS কিছু ডিফল্ট ভ্যালিডেটর প্রদান করে। এই ভ্যালিডেটরগুলোর সাহায্যে আপনি সহজেই ডেটা ইনপুট যাচাই করতে পারেন, যাতে মডেলে জমা হওয়ার আগেই অবৈধ ডেটা রোধ করা যায়।
BackboneJS সরাসরি কিছু ভ্যালিডেটর প্রদান না করলেও, Model এর validate মেথড ব্যবহার করে আপনি কাস্টম ভ্যালিডেশন যুক্ত করতে পারেন। তবে, কিছু সাধারণ এবং প্রাথমিক যাচাইয়ের ফিচার BackboneJS এর মডেলে রয়েছে যা ডিফল্টভাবে ব্যবহৃত হয়।
এখানে আমরা ব্যাখ্যা করব BackboneJS এর কিছু ডিফল্ট ভ্যালিডেটর এবং কিভাবে এগুলো ব্যবহার করা হয়।
1. validate() মেথড
BackboneJS-এ মডেল ভ্যালিডেশন করার জন্য মূলত validate() মেথড ব্যবহৃত হয়। এই মেথডটি মডেলের ডেটা যাচাই করে এবং যদি কোনো সমস্যা থাকে, তবে এটি একটি এরর রিটার্ন করে, যা তখন ব্যবহারকারীকে জানানো হয়।
validate() মেথড ব্যবহার:
var Book = Backbone.Model.extend({
// validate মেথড ডিফাইন করা
validate: function(attrs) {
if (!attrs.title) {
return "Title is required."; // যদি title না থাকে, তবে error message রিটার্ন হবে
}
if (attrs.year && attrs.year < 1900) {
return "Year must be greater than 1900."; // যদি year 1900 এর কম হয়
}
}
});
// মডেল তৈরি
var myBook = new Book({ title: "", year: 1800 });
if (!myBook.isValid()) {
console.log(myBook.validationError); // "Title is required." এবং "Year must be greater than 1900." এরর দেখাবে
}
এখানে, validate() মেথডে ডেটার শর্ত যাচাই করা হয়েছে। যখন মডেলটি সেভ করার চেষ্টা করা হয়, তখন isValid() মেথডটি ব্যবহৃত হয় ডেটার সঠিকতা পরীক্ষা করার জন্য।
2. Required Fields (আবশ্যক ক্ষেত্র)
BackboneJS-এর validate() মেথড ব্যবহার করে কোনো ফিল্ড যদি বাধ্যতামূলক (required) থাকে, তাহলে আপনি সেটি সহজেই যাচাই করতে পারেন। উদাহরণস্বরূপ, বইয়ের title ফিল্ডটি যদি শূন্য না হয়, তা নিশ্চিত করা।
উদাহরণ:
var Book = Backbone.Model.extend({
validate: function(attrs) {
if (!attrs.title) {
return "Title is required.";
}
}
});
var book = new Book({ title: "" });
if (!book.isValid()) {
console.log(book.validationError); // "Title is required."
}
এখানে, title ফিল্ডটি শূন্য হলে, validate() মেথড এরর রিটার্ন করবে এবং isValid() ফাংশন false রিটার্ন করবে।
3. Range Validation (রেঞ্জ ভ্যালিডেশন)
আপনি কোনো ফিল্ডের জন্য একটি নির্দিষ্ট মানের রেঞ্জ চেক করতে পারেন। যেমন, একটি বইয়ের publication year যদি 1900 এর বেশি এবং বর্তমান বছরের চেয়ে ছোট হতে হয়, তাহলে সেটি যাচাই করা।
উদাহরণ:
var Book = Backbone.Model.extend({
validate: function(attrs) {
if (attrs.year && (attrs.year < 1900 || attrs.year > new Date().getFullYear())) {
return "Year must be between 1900 and the current year.";
}
}
});
var book = new Book({ title: "BackboneJS Basics", year: 2025 });
if (!book.isValid()) {
console.log(book.validationError); // "Year must be between 1900 and the current year."
}
এখানে, year যদি 1900 এর কম বা বর্তমান বছরের বেশি হয়, তবে validationError রিটার্ন হবে।
4. Custom Validators (কাস্টম ভ্যালিডেটর)
BackboneJS-এ কাস্টম ভ্যালিডেটর তৈরি করা যেতে পারে, যেখানে আপনি আরও জটিল শর্ত যেমন ইমেইল, ফোন নম্বর ইত্যাদি যাচাই করতে পারেন।
উদাহরণ: ইমেইল ভ্যালিডেশন
var User = Backbone.Model.extend({
validate: function(attrs) {
var emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;
if (attrs.email && !emailRegex.test(attrs.email)) {
return "Invalid email format.";
}
}
});
var user = new User({ email: "invalid-email" });
if (!user.isValid()) {
console.log(user.validationError); // "Invalid email format."
}
এখানে, আমরা একটি কাস্টম ভ্যালিডেটর ব্যবহার করে ইমেইল ঠিকানা যাচাই করেছি এবং এটি সঠিক ফরম্যাটে না থাকলে এরর মেসেজ রিটার্ন করা হয়েছে।
5. ব্যাকবোনজেএস এ ডিফল্ট ভ্যালিডেটর নেই
BackboneJS-এ ডিফল্টভাবে কিছু নির্দিষ্ট ভ্যালিডেটর অন্তর্ভুক্ত নেই। এটি একটি লাইটওয়েট ফ্রেমওয়ার্ক হওয়ায় আপনি যে কোন কাস্টম ভ্যালিডেশন ফাংশন তৈরি করতে পারেন। এর মাধ্যমে আপনি বিভিন্ন ধরনের ইনপুট যাচাই করতে পারেন, যেমন:
- String length check
- Email format check
- Date range check
- Numeric range check
আপনি যেভাবে চান, সেভাবে validate() মেথডে শর্ত যোগ করতে পারেন এবং তা মডেল সেভ করার আগে ডেটার সঠিকতা যাচাই করতে পারেন।
সারাংশ
BackboneJS সরাসরি কিছু ডিফল্ট ভ্যালিডেটর প্রদান না করলেও, আপনি validate() মেথড ব্যবহার করে কাস্টম ভ্যালিডেশন যুক্ত করতে পারেন। কিছু সাধারণ ভ্যালিডেশন যেমন required fields, range validation, এবং custom validators সহজেই BackboneJS মডেলে ইমপ্লিমেন্ট করা যায়। এই ভ্যালিডেশনগুলো মডেল সেভ করার আগে ডেটার সঠিকতা নিশ্চিত করতে সাহায্য করে এবং এর ফলে অ্যাপ্লিকেশনটির ডেটা আরও নির্ভরযোগ্য ও সুরক্ষিত থাকে।
Read more