Ich rendere eine Seite, wo ich Daten "userInfo" übergeben aber manchmal rendern und manchmal zeigt es diese ReferenceError, nicht sicher Warum? Meine Frage ist, ob es einen Fehler gibt, dann sollte es überhaupt nicht funktionieren. Wie kann ich es reparieren?Express-EJS-Layout kann manchmal Passing-Argument nicht erkennen
<pre>
ReferenceError: /Users/user/Desktop/iSlamic/views/layout.ejs:77
75| </li>
76|
>> 77| if(userInfo)
78| <li class="dropdown">
79| <a href="#" class="dropdown-toggle" data-toggle="dropdown">Motiur<b class="caret"></b></a>
80| <ul class="dropdown-menu">
userInfo is not defined
at eval (eval at <anonymous> (/Users/user/Desktop/iSlamic/node_modules/ejs/lib/ejs.js:491:12), <anonymous>:11:10)
at returnedFn (/Users/user/Desktop/iSlamic/node_modules/ejs/lib/ejs.js:520:17)
at View.exports.renderFile [as engine] (/Users/user/Desktop/iSlamic/node_modules/ejs/lib/ejs.js:374:31)
at View.render (/Users/user/Desktop/iSlamic/node_modules/express/lib/view.js:126:8)
at tryRender (/Users/user/Desktop/iSlamic/node_modules/express/lib/application.js:639:10)
at EventEmitter.render (/Users/user/Desktop/iSlamic/node_modules/express/lib/application.js:591:3)
at ServerResponse.render (/Users/user/Desktop/iSlamic/node_modules/express/lib/response.js:961:7)
at /Users/user/Desktop/iSlamic/node_modules/express-ejs-layouts/lib/express-layouts.js:108:14
at View.exports.renderFile [as engine] (/Users/user/Desktop/iSlamic/node_modules/ejs/lib/ejs.js:379:10)
at View.render (/Users/user/Desktop/iSlamic/node_modules/express/lib/view.js:126:8)
at tryRender (/Users/user/Desktop/iSlamic/node_modules/express/lib/application.js:639:10)
at EventEmitter.render (/Users/user/Desktop/iSlamic/node_modules/express/lib/application.js:591:3)
at ServerResponse.render (/Users/user/Desktop/iSlamic/node_modules/express/lib/response.js:961:7)
at ServerResponse.res.render (/Users/user/Desktop/iSlamic/node_modules/express-ejs-layouts/lib/express-layouts.js:77:12)
at /Users/user/Desktop/iSlamic/app.js:97:7
at Layer.handle_error (/Users/user/Desktop/iSlamic/node_modules/express/lib/router/layer.js:71:5)}
</pre>
<%if(userInfo){%>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Motiur<b class="caret"></b></a>
<ul class="dropdown-menu">
<li>
<a href="/admin/insert">Insert</a>
</li>
<li>
<a href="/admin/update">Update</a>
</li>
<li>
<a href="/admin/delete">Delete</a>
</li>
<li>
<a href="/logout">Logout</a>
</li>
</ul>
</li>
<% }else{ %>
<li>
<a href="/admin/login">Login</a>
</li>
<%}%>
My js file
<pre>
router.get('/speaker/:name', function(req, res, next) {
var video_Data;
was.find({"name":req.params.name, "wasType":"video"}).sort({_id:-1}).limit(5).exec(function(err,videoDocs){
if(err)
{
res.json(err)
mongoose.connection.close();
}
else
{
video_Data = videoDocs;
}
});
//var audioData;
was.find({"name":req.params.name, "wasType":"audio"}).sort({_id:-1}).limit(5).exec(function(err,docs){
if(err)
{
res.json(err);
mongoose.connection.close();
}
else
{
if(video_Data==null&&docs==null)
{
res.json("Data does not exist");
}else{
res.render('video2', {"data":docs,"videoData": video_Data,"userInfo":req.session.admin});
}
}
});
});
I boolean Wert über userinfo ist übergeben.
'video_Data' ist möglicherweise nicht gefüllt, wenn Sie' res.render' aufrufen. – noisypixy
@noisypixy, wenn ich 5 mal neu laden dann 3 mal erfolgreich andere 2 mal fehlgeschlagen zeigt diesen Fehler. Wie kann ich mit dieser Situation umgehen und beheben? – motiur