Sur l'EJS github page, il y en a un, et seulement un exemple simple: https://github.com/visionmedia/ejs
Exemple
<% if (user) { %>
<h2><%= user.name %></h2>
<% } %>
Cela semble être de vérifier l'existence d'une variable d'utilisateur nommé, et si elle existe, de faire quelques trucs. Bah, non?
Ma question est, pourquoi dans le monde serait Nœud de jeter un ReferenceError si la variable n'existe pas? Cela rend l'exemple ci-dessus inutiles. Quel est le moyen le plus approprié pour vérifier l'existence d'une variable? Suis-je censé utiliser un try/catch mécanisme et de saisir que 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)
Je comprends que j'ai pu faire cette erreur d'aller loin en ajoutant simplement un "utilisateur" variable locale dans mon code serveur, mais le point ici est que je veux vérifier l'existence de ces variables lors de l'exécution à l'aide de votre chaque jour si/d'autre nullcheck type de modèle. Une exception pour une variable qui n'existe pas semble ridicule pour moi.