2012-07-31 19 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

相關問題