从服务器端代码获取会话信息到客户端代码

在我正在开发的一个网站上,使用Node,Express和Backbone,我使用常规的HTML表单进行用户login,当成功login时,会创build一个用户会话。 访问这个会话信息在服务器端很容易,让我访问用户名,用户名等,但我不知道如何在Backbone中访问这些信息。

我想要获取UserID,以便我可以像这样创build一个Collection的URL:

url: '/api/users/'+ this.userID +'/movies'; 

但我不知道如何最好的去获取基于服务器端的会话数据的用户ID。 这是否需要创build另一个模型 – 比如说,一个“用户”模型,通过特定的url / get请求从服务器获取会话数据?

谢谢!

我想出了一些东西,但仍然会build议:

首先,在Express.js中创build一个返回userId的函数:

 app.get('/api/current-user', middleware.requiresLogin, function(req, res){ res.send(req.session.user._id); }); 

其次,在客户端,使用Backbone模型或$ .get请求来检索ID:

 var userID = $.get("/api/current-user"); $.when(userID).then(function(data){ var user = new userCollection(data); user.fetch(); }); 

随着你的collections和模型这样做:

 window.userModel = Backbone.Model.extend({ idAttribute: "_id" }); var userCollection = Backbone.Collection.extend({ model: userModel, initialize: function(options){ this.url = "/api/users/"+options+"/movies"; this.model.urlRoot = "/api/users/"+options+"/movies"; } }); 

myModel.save(); 然后正常工作。