EJS github पेज पर, एक और केवल एक सरल उदाहरण है: https://github.com/visionmedia/ejs
उदाहरण
<% if (user) { %>
<h2><%= user.name %></h2>
<% } %>
ऐसा लगता है कि उपयोगकर्ता नाम के एक चर के अस्तित्व के लिए जाँच कर रहा है, और यदि यह मौजूद है, तो कुछ सामान करें। दुह, सही?
मेरा प्रश्न यह है कि यदि उपयोगकर्ता चर मौजूद नहीं है, तो दुनिया में Node एक संदर्भ संदर्भ क्यों फेंकेगा? यह उपरोक्त उदाहरण को बेकार कर देता है। चर के अस्तित्व की जांच करने का उपयुक्त तरीका क्या है? क्या मुझे एक कोशिश / कैच मैकेनिज्म का उपयोग करने और उस रेफरेंस को हड़पने की उम्मीद है?
ReferenceError: user is not defined
at IncomingMessage.anonymous (eval at <anonymous> (/usr/local/lib/node/.npm/ejs/0.3.1/package/lib/ejs.js:140:12))
at IncomingMessage.<anonymous> (/usr/local/lib/node/.npm/ejs/0.3.1/package/lib/ejs.js:142:15)
at Object.render (/usr/local/lib/node/.npm/ejs/0.3.1/package/lib/ejs.js:177:13)
at ServerResponse.render (/usr/local/lib/node/.npm/express/1.0.7/package/lib/express/view.js:334:22)
at Object.<anonymous> (/Users/me/Dropbox/Projects/myproject/server.js:188:9)
at param (/usr/local/lib/node/.npm/connect/0.5.10/package/lib/connect/middleware/router.js:146:21)
at pass (/usr/local/lib/node/.npm/connect/0.5.10/package/lib/connect/middleware/router.js:162:10)
at /usr/local/lib/node/.npm/connect/0.5.10/package/lib/connect/middleware/router.js:152:27
at Object.restrict (/Users/me/Dropbox/Projects/myproject/server.js:94:5)
at param (/usr/local/lib/node/.npm/connect/0.5.10/package/lib/connect/middleware/router.js:146:21)
मैं समझता हूं कि मैं अपने सर्वर कोड में केवल "उपयोगकर्ता" स्थानीय चर जोड़कर इस त्रुटि को दूर कर सकता हूं, लेकिन यहां संपूर्ण बिंदु यह है कि मैं हर दिन अगर आप का उपयोग करते हुए रनवे पर ऐसे चर के अस्तित्व की जांच करना चाहता हूं / तो nullcheck प्रकार पैटर्न। एक चर के लिए एक अपवाद जो मौजूद नहीं है, मुझे हास्यास्पद लगता है।