Meteor会话值具有重复的引号

时间:2014-12-09 03:03:20

标签: meteor

在Meteor中,我在会话中添加了一个字符串,但它变成了双重引用。

var answer = submission[1];
console.log(answer);            // C
var obj = {question: answer};
console.log(obj);               // Object {question: "C"}
Session.set(1, answer);
console.log(Session.keys);      // Object {1: ""C""}

从服务器控制台查看时,它显示如下:

{ '1': '"C"'}

我希望Object {1: "C"}代替Object {1: ""C""}{ '1': '"C"'}为什么会这样?如何删除双引号?

1 个答案:

答案 0 :(得分:1)

您可以使用EJSON.parse(theString)删除引号。如果您想要所有Session值的当前状态的快照,您可以执行以下操作:

var currentSession = {};
_.each(Session.keys, function(value, key) {
  currentSession[key] = EJSON.parse(value);
});

请注意,Session.keys 被动。您还应该直接编辑Session.keys,因为它不会触发因为它们应该发生的反应性更新,并且它会将依赖关系留在内存中,如果您使用{ {1}}而是。因此,无论何时需要反应,都应使用Session.set,并且只要您想编辑数据,就应使用Session.get