मेरे पास सर्वर पर एक बहुत ही भारी वजन वाली क्वेरी है जिसके परिणामस्वरूप एक नया पृष्ठ प्रस्तुत होता है, और मैं क्लाइंट को क्वेरी के कुछ परिणामों (ऑब्जेक्ट्स के जावास्क्रिप्ट सरणी के रूप में) पास करना चाहता हूं। यह मूल रूप से है इसलिए मुझे वही सामग्री प्राप्त करने के लिए बाद में एक अलग JSON क्वेरी करने की आवश्यकता नहीं है (जो अधिकतर स्थैतिक है)। अंततः डेटा उपयोगी होगा, लेकिन प्रारंभ में नहीं, इसलिए मैंने इसे सीधे दस्तावेज़ में नहीं रखा।नोड + एक्सप्रेस + जेड में क्लाइंट को ऑब्जेक्ट पास करना?
app.get('/expensiveCall', function(req, res) {
// do expensive call
var data = veryExpensiveFunction();
res.render('expensiveCall.jade', {
locals: {
data: data,
}
});
});
});
डेटा ऑब्जेक्ट्स की एक सरणी है और केवल कुछ प्रारंभ में उपयोग किए जाते हैं। मैं या तो डेटा की पूरी तरह से या कुछ सबसेट (स्थिति के आधार पर) पास करना चाहता हूं। मेरे जेड सामान्य जेड की तरह लग रहा है, लेकिन मैं की तरह
<script type="text/javascript">
var data = #{data};
</script>
कुछ शामिल करना चाहते हैं, लेकिन यह काम नहीं करता है (यह ऑब्जेक्ट की श्रृंखला है)।
क्षमा कहा जाना चाहिए था कि पहले: जेड सभी सामग्री मैं भी यह unescape करना होगा जिसका मतलब है कि उत्सर्जित पलायन , और यह स्पष्ट नहीं है कि कैसे बच निकलना बंद करें। मुझे लगता है कि एक्सप्रेस के साथ करने का कोई तरीका है, लेकिन मुझे यकीन नहीं है कि कैसे। मैं बस एक अलग टेम्पलेट इंजन पर स्विच कर सकता हूं लेकिन इसका मतलब है कोडिंग कोड :-( – killermonkeys
यदि आप '# {}' के बजाय '! {}' का उपयोग करते हैं तो बच निकलना बंद कर दिया जाना चाहिए। – Adrien
एएके! मैंने उसे पकड़ नहीं लिया , समझ में आता है। धन्यवाद! – killermonkeys