EJS github 페이지에는 하나의 간단한 예제가 있습니다 : https://github.com/visionmedia/ejs
예
<% if (user) { %>
<h2><%= user.name %></h2>
<% } %>
이것은 user라는 변수의 존재를 확인하는 것으로 보이며 존재하는 경우 몇 가지 작업을 수행하십시오. 응?
내 질문은 왜 사용자 변수가 존재하지 않으면 Node가 ReferenceError를 던질까요? 이것은 위의 예를 쓸모 없게 만듭니다. 변수의 존재를 확인하는 적절한 방법은 무엇입니까? try / catch 메커니즘을 사용하고 ReferenceError를 잡아야합니까?
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)
내 서버 코드에 "사용자"로컬 변수를 추가하여이 오류를 제거 할 수 있다는 것을 이해합니다.하지만 여기서 요점은 매일 if / else를 사용하여 런타임에 이러한 변수가 있는지 확인하고 싶다는 것입니다. nullcheck 유형 패턴. 존재하지 않는 변수에 대한 예외는 저에게 우스꽝스러워 보입니다.