2012-07-31 67 views
2

我真的很新的NodeJS和骨干其如此混乱如何用node.js登录用户express backbone.js mongodb?

登录:

在我使用骨干客户端。

型号

var testModel = Backbone.Model.extend({ 
    url:'api/test', 
    defaults:{ 
     login:false, 
     apikey:{}, 
    }, 

    initialize:function(){ 
     this.bind('change:apikey',this.onApiKeyChange,this); 
     // this.set({'apikey': localStorage.getItem('apikey')}); 
    }, 

    setApiKey:function(apikey){ 
     localStorage.setItem('apiKey', apikey); 
     this.set({'apikey':apikey}); 
    }, 

    onApiKeyChange:function(){ 
     // console.log(this.toJSON()) 
     //login here 
    } 
}); 

查看

var testView = Backbone.View.extend({ 
    el:'#content', 
    events:{ 
     'submit #loginForm':'login', 
    }, 

    login:function(e){ 
     e.preventDefault(); 
     this.model.setApiKey({name:this.$('input[name=username]').val(),password:this.$('input[name=password]').val()}); 
    } 
}) 
var test= new testView({model:new testModel()}); 

因此,当用户提交模式得到改变形式和触发onApiKeyChange(),如果用户登录,然后onApiKeyChange()应该更新模型与用户细节。我不知道该怎么做,骨干如何发送这样的请求?

服务器端:

var express = require('express'); 
var routes = require('./routes'); 
var http = require('http'); 
var mongoose = require('mongoose'); 


var app = express(); 

mongoose.connect('mongodb://localhost/test'); 
var User = mongoose.model('User',new mongoose.Schema({ 
    name:String, 
    password:String, 
})); 

app.configure(function(){ 
app.set('port', process.env.PORT || 3000); 
app.set('views', __dirname + '/views'); 
app.set('view engine', 'jade'); 
app.use(express.favicon()); 
app.use(express.logger('dev')); 
app.use(express.bodyParser()); 
app.use(express.cookieParser()); 
app.use(express.session({ secret: "keyboard cat" })); 
app.use(express.methodOverride()); 
app.use(app.router); 
app.use(express.static(__dirname + '/public')); 
}); 

app.configure('development', function(){ 
    app.use(express.errorHandler()); 
}); 

app.get('/', routes.index); 
app.get('/api/test', someFunction()); 

http.createServer(app).listen(app.get('port'), function(){ 
console.log("Express server listening on port " + app.get('port')); 
}); 

服务器端只是基本明确app.js,我不`吨知道如何使用的会话。

我知道这可能是一个基本问题,但我只是不明白。请给我一些建议或告诉我一些简单的初学者教程。

回答

7

我个人使用PassportJS进行身份验证,只有在用户通过身份验证后,他才可以访问我使用骨干网的“单页面应用程序”。下面是对我来说是很大的帮助LostAndFound

相关问题