sails.js
मॉडल
खोज…
टिप्पणियों
पाल एक शक्तिशाली ORM / ODM के साथ आता है जिसे Waterline कहा जाता है, एक डेटास्टोर-अज्ञेय उपकरण जो नाटकीय रूप से एक या अधिक डेटाबेस के साथ बातचीत को सरल करता है। यह अंतर्निहित डेटाबेस के शीर्ष पर एक अमूर्त परत प्रदान करता है, जो आपको विक्रेता-विशिष्ट एकीकरण कोड लिखने के बिना अपने डेटा को आसानी से क्वेरी और हेरफेर करने की अनुमति देता है।
मूल मॉडल
यह उदाहरण दिखाता है कि Sails.js में एक साधारण मॉडल को कैसे परिभाषित किया जाए
आप टाइप करके एक खाली मॉडल फ़ाइल तैयार कर सकते हैं
sails generate model car
आपको api/models/
में नई फ़ाइल Car.js
मिल जाएगी।
इसके बाद, आप कुछ विवरण भरें।
modules.exports = {
tableName : 'cars',
connection : 'mongodb',
attributes : {
id : {
type : 'integer',
unique : true,
primaryKey : true,
autoIncrement : true
},
brand : {
type : 'string',
size : 25
},
description : {
type: 'text',
defaultsTo : ''
},
price : {
type : 'float',
required : true
},
seats : {
type : 'integer'
},
sell_date : {
type : 'datetime'
},
has_cooler : {
type : 'boolean',
columnName : 'cooler'
},
chassis_number : {
unique : true,
type : 'string'
},
color : {
type : 'string',
enum: ['white', 'red', 'black']
}
}
};
ऊपर दिया गया उदाहरण लगभग हर संभव मॉडल विकल्प का उपयोग करता है, जिसे नीचे समझाया गया है।
1. टेबलनेम
यह पैरामीटर तालिका का नाम परिभाषित करता है जो डेटाबेस में बनाई जाएगी। यदि परिभाषित नहीं किया गया है, तो मॉडल नाम का उपयोग किया जाएगा (इस उदाहरण में car
)।
2. कनेक्शन
यह विशेष रूप से मॉडल के लिए उपयोग किए जाने वाले डेटाबेस कनेक्शन को परिभाषित करता है। उस कनेक्शन का विवरण config/connections.js
. mongodb
अंदर mongodb
कुंजी के तहत परिभाषित किया गया है। यहाँ एक कनेक्शन का प्रारूप है:
mongodb : {
// The driver that connect our models with the database
adapter : '<adapter>',
// The database parameters
user : '<username>',
port : <port>,
host : '<host>',
database : '<database>'
}
3. गुण
प्रत्येक विशेषता मॉडल के लिए डेटाबेस तालिका में एक स्तंभ का संदर्भ देती है। इस उदाहरण में, नौ कॉलम बनाए जाएंगे। प्रत्येक कॉलम को निम्न में से एक या अधिक के साथ कॉन्फ़िगर किया जा सकता है:
- प्रकार : स्तंभ का डेटा प्रकार। यह पृष्ठ सभी उपलब्ध प्रकारों को सूचीबद्ध करता है।
- अद्वितीय : यदि सही है, तो एक त्रुटि उत्पन्न होगी यदि आप किसी ऐसे ऑब्जेक्ट को बनाने का प्रयास करते हैं जिसका डेटाबेस में पहले से ही इस स्तंभ के लिए समान मूल्य है।
- प्राइमरीके : यदि सही है, तो कॉलम प्राथमिक कुंजी के रूप में काम करेगा।
- ऑटोइन्क्रिमेंट : एक सीक्वेंस 0 से शुरू होने वाले ऑटो इंक्रीमेंबल नंबर वाले कॉलम से जुड़ा होगा।
- आकार : स्तंभ की अधिकतम लंबाई।
- आवश्यक : यदि सच है, तो यह शून्य नहीं हो सकता।
- columnName : यह डेटाबेस में कॉलम को कॉन्फ़िगर करता है, जो विशेषता नाम के लिए चूक करता है।
- enum : हम एक विशेषता के लिए संभावित विकल्पों की एक सरणी सेट कर सकते हैं।