Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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
Javascript Jade-访问传递给它的变量_Javascript_Node.js_Mongoose_Pug - Fatal编程技术网

Javascript Jade-访问传递给它的变量

Javascript Jade-访问传递给它的变量,javascript,node.js,mongoose,pug,Javascript,Node.js,Mongoose,Pug,因此,当用户登录我的Node.js应用程序时,我在会话中存储了一个用户。我有管理员和默认用户,如果我在Jade模板中输出{session.user.role},我会得到default或admin出现。当在我的页面上进行测试时,我可以使用-if(session.user)隐藏页面上的项目,如果没有人登录,那么如何隐藏非管理员用户的项目呢 我尝试输入-if(session.user.role==='default'),但我收到一个错误,说无法读取未定义的的属性'role'。那就行不通了,有人知道怎么

因此,当用户登录我的Node.js应用程序时,我在会话中存储了一个用户。我有管理员和默认用户,如果我在Jade模板中输出
{session.user.role}
,我会得到
default
admin
出现。当在我的页面上进行测试时,我可以使用
-if(session.user)
隐藏页面上的项目,如果没有人登录,那么如何隐藏非管理员用户的项目呢

我尝试输入
-if(session.user.role==='default')
,但我收到一个错误,说
无法读取未定义的
的属性'role'。那就行不通了,有人知道怎么做吗

以下是使用Mongoose的用户模式:

var User = new Schema({
  'key' : {
    unique : true,
    type : Number,
    default: getId
  },
  'username' : { type : String, 
              validate : [validatePresenceOf, 'a Username is required'],
              set : toLower,
              index : { unique : true }
              },
  'password' : String,
  'role' : String,
});

您说的是
session.user.role
输出默认值或admin,因此它必须存在。您确定未定义的错误不仅仅发生在未登录的用户身上吗?如果是这样,您可以编写
If(session.user&&session.user.role==='default')
。您说的是
session.user.role
输出默认值或admin,所以它必须存在。您确定未定义的错误不仅仅发生在未登录的用户身上吗?如果是这样,您可以编写
If(session.user&&session.user.role==“default”)
。出于兴趣,您知道如何在Node.js应用程序的
express
路由中执行此操作吗?我正在路由到一个页面,但是如果用户不是管理员,我想关闭对该页面的访问。如果用户是管理员或不是管理员,我现在只是使用控制台日志打印到控制台,但我得到一个
会话未定义
错误。感谢您的深入了解,您将如何检查默认用户或未注册用户?例如,如果用户被设置为
默认值
管理员
页面将加载,但如果没有用户登录,错误是
角色未定义
,因为没有人不感兴趣地登录,您知道如何在Node.js应用程序的
express
路由中执行此操作吗?我正在路由到一个页面,但是如果用户不是管理员,我想关闭对该页面的访问。如果用户是管理员或不是管理员,我现在只是使用控制台日志打印到控制台,但我得到一个
会话未定义
错误。感谢您的深入了解,您将如何检查默认用户或未注册用户?例如,如果用户设置为
默认值
管理员
,则页面将加载,但如果没有用户登录,则错误为
角色未定义
,因为没有人登录
- if (typeof session.user != 'undefined' && session.user.role === 'default')