Я работаю над выражением nodejs и реализую функцию app.locals
в файле представления (шаблон ejs): -
<% if(someHelper('/admin/dashboard',req.user._id)){ %>
<li>
<a href="/admin/dashboard">
<i class="fa fa-user">
</i>
<span>
Create Chairman
</span>
</a>
</li>
<% } %>
в файле app.js (server.js):-
app.locals.someHelper = function(route_name,user_id) {
user.find({user_id:user_id, route_name:route_name}, function(err, user_per){
if(err) return false;
if(typeof user_per != 'undefined' && user_per.length > 0){
return true;
console.log("true");
} else {
return false;
console.log("false");
}
});
}
, если если условие выполнено, то не вернуть допустимое значение 1.
также пытался получить значения req и callback perameter и вернуть значение, но оба не полезны в этой функции.
app.locals.someHelper = function(route_name, user_id, callback) {
user.find({
user_id: user_id,
route_name: route_name
}, function(err, user_per) {
if(typeof user_per != 'undefined' && user_per.length > 0){
// permitted
return callback(1);
}
callback(0);
});
}
обратный вызов не является функцией
я хочу, чтобы возврат был разрешен 0, если часть не выполнена, иначе возврат разрешен 1.
ссылка