MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

नोड + जेड + एक्सप्रेस के साथ मोंगो (ग्रिडएफएस) में संग्रहीत छवि प्रस्तुत करें

मैंने इसे समझ लिया (धन्यवाद टिमोथी!)। समस्या इन सभी तकनीकों के बारे में मेरी समझ थी और वे एक साथ कैसे फिट होती हैं। किसी और के लिए जो नोड, एक्सप्रेस और जेड का उपयोग करके मोंगोडीबी ग्रिडएफएस से छवियों को प्रदर्शित करने में रूचि रखता है ...

मोंगोडीबी में मेरे दस्तावेज़ में ग्रिडएफएस में संग्रहीत छवि का संदर्भ है जो एक ऑब्जेक्ट आईडी संग्रहीत एएसए स्ट्रिंग है। जैसे MyEntity {ImageId:'4f6d39ab519b481eb4a5cf52'} <- NB:ObjectId का स्ट्रिंग प्रतिनिधित्व। मैंने इसे एक स्ट्रिंग के रूप में संग्रहीत करने का कारण यह था क्योंकि ऑब्जेक्ट आईडी को संग्रहीत करने से मुझे रूटिंग में दर्द हो रहा था क्योंकि यह बाइनरी के रूप में प्रस्तुत कर रहा था और मैं यह नहीं समझ सका कि इसे कैसे ठीक किया जाए। (शायद कोई यहाँ मदद कर सकता है?) वैसे भी, मेरे पास जो समाधान है वह नीचे है:

फाइल रिपोजिटरी - ग्रिडएफएस से छवि पुनर्प्राप्त करें, मैं एक स्ट्रिंग आईडी में पास करता हूं, जिसे मैं तब बीएसओएन ऑब्जेक्ट आईडी में परिवर्तित करता हूं (आप फ़ाइल नाम से फ़ाइल भी प्राप्त कर सकते हैं):

FileRepository.prototype.getFile = function(callback,id) {
   var gs = new GridStore(this.db,new ObjectID(id), 'r');
   gs.open(function(err,gs){
      gs.read(callback);
   });
 };

जेड टेम्पलेट - HTML मार्कअप रेंडर करें:

img(src='/data/#{myentity.ImageId}')

App.JS फ़ाइल - रूटिंग (एक्सप्रेस का उपयोग करके) मैं गतिशील छवियों के लिए '/data/:imgtag' रूट सेट करता हूं:

app.get('/data/:imgtag', function(req, res) {
  fileRepository.getFile( function(error,data) {
     res.writeHead('200', {'Content-Type': 'image/png'});
     res.end(data,'binary');
  }, req.params.imgtag );
});

और यही काम किया। कोई भी प्रश्न मुझे बताएं :)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo में एक पाइपलाइन में कुछ संग्रह कैसे शामिल करें और क्रमबद्ध करें?

  2. MongoDB में सरणियों से 0 मानों को हटा दें यदि 0 के बाद> =1 है

  3. Node.js और mongodb के साथ टाइमआउट को संभालना

  4. MongoDB के लिए परिनियोजन पैटर्न की तुलना करना

  5. MongoConnectionException - से कनेक्ट करने में विफल:लोकलहोस्ट:27017