Meteor has a Session that provides a global object on the client that you can use to store an arbitrary set of key-value pairs. Use it to store things like the currently selected item in a list.
It supports Session.set, Session.get and Session.equals.
How do I delete a Session name, value pair? I can't find a Session.delete(name) ?
A PHP session can be destroyed by session_destroy() function. This function does not need any argument and a single call can destroy all the session variables. If you want to destroy a single session variable then you can use unset() function to unset a session variable.
Which function is used to erase all session variables stored in the current session? Explanation: The function session_unset() frees all session variables that is currently registered.
Session_destroy() function is used to destroy a session. This function destroys the complete session. To unset a single session variable, we can use the unset() function.
Session variables on the client are read-only. They cannot be modified.
[note: this answer is for Meteor 0.6.6.2 through at least 1.1.0.2]
[edit: updated to also explain how to do this while not breaking reactivity. Thanks to @DeanRadcliffe, @AdnanY, @TomWijsman, and @MikeGraf !]
The data is stored inside Session.keys, which is simply an object, so you can manually delete keys:
Session.set('foo', 'bar') delete Session.keys['foo'] console.log(Session.get('foo')) // will be `undefined` To delete all the keys, you can simply assign an empty object to Session.keys:
Session.set('foo', 'bar') Session.set('baz', 'ooka!') Session.keys = {} console.log(Session.get('foo')) // will be `undefined` console.log(Session.get('baz')) // will be `undefined` That's the simplest way. If you want to make sure that any reactive dependencies are processed correctly, make sure you also do something like what @dean-radcliffe suggests in the first comment. Use Session.set() to set keys to undefined first, then manually delete them. Like this:
// Reset one value Session.set('foo', undefined) delete Session.keys.foo // Clear all keys Object.keys(Session.keys).forEach(function(key){ Session.set(key, undefined); }) Session.keys = {} There will still be some remnants of the thing in Session.keyDeps.foo and Session.keyValueDeps.foo, but that shouldn't get in the way.
Session.set('name', undefined) or Session.set('name', null) should work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With