एक्सप्रेस जेएस और सीक्वेलिज के साथ पोस्टग्रे पर लंबे लेट पॉइंट को कैसे स्टोर करें?
हाय सब, यह संक्षिप्त लेख उन लोगों के लिए है जिन्हें यह पता लगाने की आवश्यकता है कि भौगोलिक बिंदु (लंबा, अक्षांश) को पोस्टग्रे में कैसे संग्रहीत किया जाए। मैं एक्सप्रेस को http फ्रेमवर्क के रूप में और Sequelize को ORM के रूप में उपयोग करूंगा।
पूर्व आवश्यकताएं
- जावास्क्रिप्ट
- एसक्यूएल का बुनियादी ज्ञान
- साधारण आराम एपीआई और एक्सप्रेस का बुनियादी ज्ञान
- Sequelize . का उपयोग करने का बुनियादी ज्ञान
- कोड संपादक, नोड जेएस और पोस्टग्रे आपके सिस्टम पर स्थापित हैं
सर्वर बनाने के लिए इस एक्सप्रेस दस्तावेज़ का पालन करें जो HTTP अनुरोध को संभाल सकता है। उसके बाद अपने मशीनिंग पर सीक्वेलाइज-क्ली इंस्टॉल करें (आप इसे स्थानीय रूप से कमांड एनपीएम आई-जी सीक्वेलाइज-क्ली चलाकर कर सकते हैं) इनिट सीक्वेलाइज ऑन यू सर्वर फोल्डर सीक्वेलाइज इनिट के साथ
पोस्टगिस और माइग्रेशन
Postgis PostgreSQL ऑब्जेक्ट-रिलेशनल डेटाबेस के लिए एक स्थानिक डेटाबेस एक्सटेंडर है। यह भौगोलिक वस्तुओं के लिए समर्थन जोड़ता है जिससे SQL में स्थान प्रश्नों को चलाने की अनुमति मिलती है। संदर्भ:https://postgis.net/. या आप इस रेपो शाखा को आरंभीकरण के लिए क्लोन कर सकते हैं:https://github.com/dhimashary/express-sequelize-geom/tree/01.init-project
सबसे पहले, हमें पोस्टगिस नामक एक्सटेंशन जोड़ने के लिए माइग्रेशन जोड़ने की आवश्यकता है
फिर स्टोर टेबल जोड़ें जिसमें अतिरिक्त 2 फ़ील्ड, स्थान (ज्यामिति बिंदु प्रकार डेटा के साथ, मूल रूप से हम यहां लेट और लॉन्ग स्टोर करते हैं) और नाम।
सीडिंग डेटा स्टोर करता है
ST_GeomFromText टेक्स्ट पैरामीटर प्राप्त करेगा, हम बिंदु प्रकार और इनपुट अक्षांश और देशांतर (अंतरिक्ष द्वारा अलग) का उपयोग करेंगे।
कॉन्फ़िगरेशन सेटअप चलाएँ
अपना कॉन्फ़िगरेशन सेटअप करने के लिए इस कमांड को टर्मिनल पर चलाएँ
sequelize db:create
sequelize db:migrate
sequelize db:seed:all
अब हम अपने सर्वर से पूछताछ करने का प्रयास करेंगे, हम अनुरोध क्वेरी पर दिए गए त्रिज्या दूरी और अक्षांश से मेल खाने वाले डेटा को खोजने का प्रयास करेंगे।
हमारा नियंत्रक अनुरोध क्वेरी, दूरी (मीटर इकाई के साथ), लंबी (वर्तमान स्थान का देशांतर) से 3 क्वेरी स्वीकार करता है।
इस मामले में ST_D4 परम स्वीकार करते हैं, पहला परम वर्तमान पंक्ति/डेटा स्थान है, दूसरा परम अक्षांश है, जो अनुरोध क्वेरी पर प्रदान किया गया है, तीसरा परम दूरी (त्रिज्या) है, और चौथा परम बूलियन है जो इंगित करता है हमारी क्वेरी पर गोलाकार का प्रयोग करें।
अब एपीआई को हिट करने का प्रयास करें
npm रन देव चलाकर सर्वर चलाएँ, और दिए गए मार्गों के उदाहरण को हिट करें:http://localhost:3000/stores?distance=400&lat=107.59278847659893&long=-6.942981263106864
और बस !
अब आप जानते हैं कि पोस्टगिस एक्सटेंशन कैसे जोड़ें, ज्योमेट्री पॉइंट टाइप के साथ माइग्रेशन कैसे बनाएं और डेटा सीडिंग कैसे करें। आप यहां पूरा कोड पा सकते हैं ।
पढ़ने के लिए धन्यवाद !