ejs - 模板变量未定义

3
我是一名网站新手,但我找不到解决我的问题的答案:
我试图将一个名为catURL的变量传递给我的HTML文件,但当我尝试渲染它时,失败了。
这是我传递变量的方式:
res.render('index', {catURL: url, error: null});

这是我在HTML中尝试展示它的地方:
<div id="Wax on" class="tabcontent">
  <h3>Wax on</h3>
  <p>Dont forget to wax off!!!</p>
  <% if(catURL !== null){ %>
    <img src="<%= catURL %>" />
  <% } %>
</div>

这是我收到的错误信息:

ReferenceError: /Users/nimrodshai/Documents/Projects/WeatherJS/views/index.ejs:21
    19|       <h3>Wax on</h3>
    20|       <p>Dont forget to wax off!!!</p>
 >> 21|       <% if(catURL !== null){ %>
    22|         <img src="<%= catURL %>" />
    23|       <% } %>
    24|     </div>

catURL is not defined
    at eval (eval at compile (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/ejs/lib/ejs.js:618:12), <anonymous>:11:8)
    at returnedFn (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/ejs/lib/ejs.js:653:17)
    at tryHandleCache (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/ejs/lib/ejs.js:251:36)
    at View.exports.renderFile [as engine] (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/ejs/lib/ejs.js:482:10)
    at View.render (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/express/lib/view.js:135:8)
    at tryRender (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/express/lib/application.js:640:10)
    at Function.render (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/express/lib/application.js:592:3)
    at ServerResponse.render (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/express/lib/response.js:1008:7)
    at /Users/nimrodshai/Documents/Projects/WeatherJS/server.js:14:6
    at Layer.handle [as handle_request] (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/express/lib/router/layer.js:95:5)
    at next (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/express/lib/router/layer.js:95:5)
    at /Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/express/lib/router/index.js:281:22
    at Function.process_params (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/express/lib/router/index.js:275:10)
    at urlencodedParser (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/body-parser/lib/types/urlencoded.js:91:7)
    at Layer.handle [as handle_request] (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/express/lib/router/index.js:317:13)
    at /Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/nimrodshai/Documents/Projects/WeatherJS/node_modules/express/lib/router/index.js:275:10)

Appreciate your help

1个回答

0

明白了。

我不知道我应该以同样的方式声明这个变量。 这是我的做法:

<% var catURL; %>

将其放置在HTML顶部。

3
这将重置您从路由传递的值。请检查您是否有两个版本的该路由。 - flash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接