में ईजेएस चर का उपयोग करना मैं एक नोडजेएस ऐप पर काम कर रहा हूं (यह एक गेम है)। इस मामले में, मेरे पास कुछ कोड स्थापित हैं जैसे कि जब कोई व्यक्ति इंडेक्स पर जाता है और कमरे चुनता है, तो उसे उचित कमरे में रीडायरेक्ट किया जाता है।जावास्क्रिप्ट तर्क
अभी यह एक्सप्रेस v2.5.8 के साथ, इस तरह से किया जा रहा है:
server.get("/room/:name/:roomId, function (req, res) {
game = ~databaseLookup~
res.render("board", { gameState : game.gameState });
}
board.ejs में
से अधिक मैं इस तरह कोड के साथ gameState ढंग पहुँच सकते हैं:
<% if (gameState) { %>
<h2>I have a game state!</h2>
<% } %>
वहाँ है मेरे जावास्क्रिप्ट तर्क में इसे आयात करने का एक तरीका? मैं var gs = ~ import ejs gameState ~
और फिर जो कुछ भी मैं चाहता हूं उसे करने में सक्षम होना चाहता हूं - इसके चरों तक पहुंचने के लिए, इसे सत्यापन के लिए कंसोल पर प्रिंट करें। अंततः मैं इस गेमस्टेट के साथ क्या करना चाहता हूं बोर्ड को सही तरीके से प्रदर्शित करना है, और ऐसा करने के लिए मुझे टुकड़ों की स्थिति तक पहुंचने जैसी चीजों को करने की आवश्यकता होगी और फिर उन्हें स्क्रीन पर ठीक से प्रदर्शित करना होगा।
धन्यवाद!
मैं AJAX कॉल के साथ रोल के लिए एक बार पृष्ठ पहले ही लोड है तय कर लिया है। उपरोक्त आपके कोड के साथ समस्या यह है कि <% = gameState%> [ऑब्जेक्ट ऑब्जेक्ट] का मूल्यांकन करता है जो कि मैं जो चाहता हूं वह बिल्कुल नहीं है। धन्यवाद! –
मैं अपने सभी पृष्ठों के नीचे <% स्क्रिप्ट%> का उपयोग करता हूं जिसमें कुछ मानक सामान पास किए गए हैं, जैसे अनुरोध ऑब्जेक्ट, उपयोगकर्ता ऑब्जेक्ट, फॉर्म त्रुटियां। – chovy
यदि कोड [ऑब्जेक्ट ऑब्जेक्ट] का मूल्यांकन करता है, तो मैं 'JSON.stringify (game.gameState) 'सर्वर पक्ष का उपयोग करने का सुझाव देता हूं। फिर स्ट्रिंग ऑब्जेक्ट को स्क्रिप्ट टैग में रखा जाएगा। चूंकि ईजे प्रतिपादन सामान्य रूप से HTML के लिए विशेष वर्णों से बच निकलता है, इसलिए आप स्क्रिप्ट टैग के भीतर 'var clientGameState = <% - gameState%> ' का उपयोग करना चाहेंगे (' <% = ') यदि आपको प्रतिपादन के लिए गेमस्टेट की आवश्यकता है पृष्ठ भी, आप JSON.parse() को इसके ऊपर लूप करने के लिए कर सकते हैं। – Matthias