मुझे यह पता चला (धन्यवाद तीमुथियुस!)। समस्या इन सभी प्रौद्योगिकियों की मेरी समझ थी और वे एक साथ कैसे फिट बैठते थे। किसी और को जो नोड, एक्सप्रेस और जेड का उपयोग कर MongoDB GridFS से छवियों को प्रदर्शित करने में रुचि रखते है ... के लिए
MongoDB में मेरे दस्तावेज़ छवि GridFS में जमा हो जाती है जो एक ObjectId एक स्ट्रिंग के रूप में जमा है के लिए एक संदर्भ है। जैसे MyEntity {ImageId: '4f6d39ab519b481eb4a5cf52'} < - एनबी: ऑब्जेक्ट आईडी का स्ट्रिंग प्रस्तुति। एक स्ट्रिंग के रूप में इसे संग्रहीत करने का कारण था क्योंकि ऑब्जेक्टआईडी मुझे रूटिंग में दर्द दे रहा था क्योंकि यह बाइनरी के रूप में प्रस्तुत किया गया था और मैं इसे ठीक करने का तरीका नहीं समझ पाया। (शायद कोई यहां मदद कर सकता है?)। वैसे भी, समाधान मैं नीचे है:
FileRepository - GridFS से छवि को पुनः प्राप्त, मैं एक स्ट्रिंग ईद में पास है, जो मैं तो में बदलने का एक BSON 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);
});
};
जेड खाका - प्रस्तुत एचटीएमएल मार्कअप:
img(src='/data/#{myentity.ImageId}')
01 गतिशील छवियों के लिए मार्ग:
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);
});
और वह काम किया है: रूटिंग (का उपयोग करते हुए एक्सप्रेस) मैं सेटअप 'imgtag/डेटा /' -
App.JS फ़ाइल। कोई सवाल मुझे बताएं :)
स्रोत
2012-03-24 03:30:27
माइम प्रकार को ठीक करें या इसे ग्रिडफ़ –
से पता लगाएं धन्यवाद तीमुथियुस, जिसने मुझे सही दिशा में इंगित किया।मुझे संबोधित करने के लिए बहुत सारे मुद्दे थे इसलिए मैंने पूर्णता के लिए नीचे अपना समाधान पोस्ट किया। –