Node.js NodeJs-esc不是一个函数
当我试图在这个特定的行中呈现一个.ejs文件时,我遇到了一个奇怪的问题Node.js NodeJs-esc不是一个函数,node.js,ejs,Node.js,Ejs,当我试图在这个特定的行中呈现一个.ejs文件时,我遇到了一个奇怪的问题 TypeError: /home/me/nodeapp/app/views/default/page/connection.ejs:66 64| <div class="col s12 l8"> 65| <ul class="collapsible popout" data-collapsible="accordion"">
TypeError: /home/me/nodeapp/app/views/default/page/connection.ejs:66
64| <div class="col s12 l8">
65| <ul class="collapsible popout" data-collapsible="accordion"">
>> 66| <%- include ../api_html/connection/connection_list.ejs %>
67| </ul>
68| </div>
TypeError:/home/me/nodeapp/app/views/default/page/connection.ejs:66
64|
65 |我没有名誉发表评论,所以。。。。我只是看到了同样的症状。在我的例子中,我意外地将“currentUser.name”从第8节“Express In Action”一书中的一个示例更改为“currentUser.name”(大写“N”)
在routes.js中
var passport = require( "passport" );
router.use( function( req, res, next ) {
res.locals.currentUser = req.user;
}
视图/_header.ejs
<a href="/edit">
Hello <%= currentUser.Name() %>
</a>
当我改回“currentUser.name”时,类型错误消失了。首先感谢您的回答
我解决了这个问题
错误在包含的EJS文件中
例如,如果包含包含
的
,则当定义了用户(用户已登录)时,它将正常工作,但当未定义时,esc将不会在函数中抛出。正如@Dash回答的问题,当.ejs模板中有未定义的变量时,会发生这种情况。有一种很难找到这个变量的方法,方法是将模板代码直接放在ejs文件中,现在当你运行应用程序时,你可以看到未定义的变量。
例如,假设您有index.ejs,并且在此文件中包含一个模板
。现在,如果遇到此错误,只需复制并通过索引中的_分页文件中的代码,然后运行应用程序以查找未定义的变量。尝试运行。/api_html/connection/connection_list.ejs
thru。(免责声明:我写了EJS Lint)试试看,这与问题无关。这是另一种类型的错误