Javascript 从服务器端代码到客户端代码获取会话信息
在我正在开发的一个网站上,使用Node、Express和Backbone,我让用户使用常规HTML表单登录,成功登录后,该表单将创建一个用户会话。在服务器端访问此会话信息很容易,让我可以访问用户ID、用户名等,但我不确定如何在主干网中访问此信息 我想获取用户ID,以便为如下集合创建URL:Javascript 从服务器端代码到客户端代码获取会话信息,javascript,node.js,cookies,backbone.js,express,Javascript,Node.js,Cookies,Backbone.js,Express,在我正在开发的一个网站上,使用Node、Express和Backbone,我让用户使用常规HTML表单登录,成功登录后,该表单将创建一个用户会话。在服务器端访问此会话信息很容易,让我可以访问用户ID、用户名等,但我不确定如何在主干网中访问此信息 我想获取用户ID,以便为如下集合创建URL: url: '/api/users/'+ this.userID +'/movies'; 但我不确定如何根据服务器端的会话数据获取用户ID。这是否需要创建另一个模型——例如,通过特定的url/get请求从服
url: '/api/users/'+ this.userID +'/movies';
但我不确定如何根据服务器端的会话数据获取用户ID。这是否需要创建另一个模型——例如,通过特定的url/get请求从服务器获取会话数据的“用户”模型
谢谢 我提出了一些建议,但仍然愿意接受建议: 首先,在Express.js中创建一个返回用户ID的函数:
app.get('/api/current-user', middleware.requiresLogin, function(req, res){
res.send(req.session.user._id);
});
其次,在客户端,使用主干模型或$获取ID。get请求:
var userID = $.get("/api/current-user");
$.when(userID).then(function(data){
var user = new userCollection(data);
user.fetch();
});
您的收藏和模型正在执行以下操作:
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();然后工作正常