【发布时间】:2018-03-14 06:01:25
【问题描述】:
我尝试在会话变量中保存一个集合:
var rowLength = result.rows.length;
var setOfPermissions = new Set();
for (var i = 0; i < rowLength; i++) {
var permission = result.rows[i].permission;
setOfPermissions.add(permission);
}
req.session.permissions = setOfPermissions;
但后来当我尝试访问它时:
var setOfPermissions = req.session.permissions;
if(setOfPermissions.has('my permission')) //Error over here
我收到以下错误:
TypeError: setOfPermissions.has 不是函数
编辑:console.log("permissions:::"+ setOfPermissions); 的输出 是:
权限:::[对象对象]
【问题讨论】:
-
console.log(typeof req.session.permissions)在 if 语句上方返回什么?看起来它确实被转换为一个对象。 -
@agm1984 它打印:permissions:::[object Object]
-
一切正常。我认为您尝试在 Set 初始化之前检查值。
-
会话通常以 JSON 格式存储,
Set不能直接序列化为 JSON。 -
@robertklep 那么你是说我应该使用其他结构而不是将我的值存储在一个集合中吗?你会推荐什么 ?一个数组?
标签: javascript node.js session express-session