ইজেএস গিথুব পৃষ্ঠায়, একটি এবং একটি সহজ উদাহরণ রয়েছে: https://github.com/visionmedia/ejs
উদাহরণ
<% if (user) { %>
<h2><%= user.name %></h2>
<% } %>
মনে হচ্ছে এটি একটি পরিবর্তনশীল নামের ব্যবহারকারীর অস্তিত্বের জন্য যাচাই করে নিচ্ছে এবং যদি এটি উপস্থিত থাকে তবে কিছু স্টাফ করুন। দুহ, তাই না?
আমার প্রশ্ন হ'ল যদি ব্যবহারকারী ভেরিয়েবলের অস্তিত্ব না থাকে তবে নোড কেন বিশ্বে একটি রেফারেন্সআরার নিক্ষেপ করবে? এটি উপরোক্ত উদাহরণটিকে অকেজো উপস্থাপন করে। একটি ভেরিয়েবলের অস্তিত্ব পরীক্ষা করার উপযুক্ত উপায় কী? আমি কি চেষ্টা / ধরার ব্যবস্থাটি ব্যবহার করার এবং সেই রেফারেন্স এরিয়ারটি ধরার আশা করব?
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)
আমি বুঝতে পারি যে আমি আমার সার্ভার কোডে কেবলমাত্র "ব্যবহারকারী" স্থানীয় ভেরিয়েবল যুক্ত করে এই ত্রুটিটি সরিয়ে দিতে পারি, তবে এখানে পুরো বিষয়টি হ'ল আমি যদি আপনার প্রতিদিন ব্যবহার করে রানটাইমের সময় এই ধরণের ভেরিয়েবলগুলির অস্তিত্ব পরীক্ষা করতে চাই তবে / অন্যথায় নাল চেক টাইপ প্যাটার্ন। যে চলকটির অস্তিত্ব নেই তার ব্যতিক্রম আমার কাছে হাস্যকর মনে হয়।