尝试运行网站时NodeJs错误

所以我一直在做一个投票应用程序的挑战一段时间,我完成了注册和login部分,但后来遇到了一个问题,我不明白为什么会发生:

每当我试图去“民意调查”部分,它给了我一个错误:

TypeError: /home/ubuntu/workspace/views/polls.ejs:2 1| <%include header.ejs %> >> 2| <%include nav.ejs %> 3| <div id = "home" class = "container"> 4| <h1>Polls</h1> 5| </div> esc is not a function 

PS行1〜5是我在polls.ejs文件中的所有内容

这是我的polls.js文件的代码:

 const express = require('express'); const router = express.Router(); router.get('/', function (req, res) { res.render('polls'); }); module.exports = router; 

这里是我的nav.ejs文件的代码:

  <body> <header> <nav class="navbar navbar-dark navbar-full navbar-fixed-top" style="background-color: #0099ff;"> <div class="container"> <% if(authenticated === false){ %> <a id="title" class="navbar-brand" href="/" style="color: #dddddd">FFC Voting App</a> <ul class="nav navbar-nav pull-sm-right" style = "float: right;"> <li class="nav-item active"><a class="nav-link" href="/polls">Polls</a></li> <li class="nav-item"><a class="nav-link" href="/login">Login In</a></li> <li class="nav-item"><a class="nav-link" href="/signup">Sign Up</a></li> </ul> <% }else{ %> <a id="title" class="navbar-brand" href="/" style="color: #dddddd">FFC Voting App</a> <ul class="nav navbar-nav pull-sm-right" style = "float: right;"> <li class="nav-item active"><a class="nav-link" href="/polls">Polls</a></li> <li class="nav-item"><a class="nav-link" href="/mypolls">My Polls</a></li> <li class="nav-item"><a class="nav-link" href="/">Logout</a></li> </ul> <%}%> </div> </nav> </header> 

这里奇怪的是,如果我拿出nav.ejs文件的if / else语句,它工作得很好,但是当我添加它时,它给了我错误。

有谁知道为什么会发生,我怎么能解决它?

esc is not a function是说你有一个未定义的variables的ejs方式。

在这种情况下,这意味着你的variablesauthenticated是未定义的。