2

私はnodejsとバックボーンに本当に慣れていないので、とても混乱しています

ログイン:

クライアント側ではバックボーンを使用しています。

モデル

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'));
});

サーバー側は基本的な Express app.js だけで、セッションの使い方がわかりません。

これは基本的な問題かもしれませんが、わかりません。アドバイスや初心者向けの簡単なチュートリアルを教えてください。

4

2 に答える 2

7

私は個人的にPassportJSを使用して認証を行います。ユーザーが認証された後にのみ、バックボーンを使用する「シングルページアプリ」にアクセスできます。これが私にとって大きな助けとなったプロジェクトですLostAndFound

于 2012-07-31T11:54:40.683 に答える
0

多分これはあなたに役立つでしょう...

https://github.com/etaque/node-backbone-mongo-showcase.git

于 2012-07-31T14:45:58.330 に答える