Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NodeJs-esc不是一个函数_Node.js_Ejs - Fatal编程技术网

Node.js NodeJs-esc不是一个函数

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"">

当我试图在这个特定的行中呈现一个.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"">
     >> 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)试试看,这与问题无关。这是另一种类型的错误