1

Backbone.jsのsave()メソッドを介してクライアントからサーバーにデータを渡そうとしています。

todo.js

window.Todo = Backbone.Model.extend({
        initialize:function(){
        },
        urlRoot:"http://localhost:3000/api/todos",
        defaults:{
            title:"",
            done:false,
            important:false,
            completed:false
        },
        toggleDone:function(){
            this.destroy();
        }

});

app.js(Express)

app.post("/api/todos",function(req,res){
        console.log(req.title); // I want to receive todo item's title which is created new item's.But req.title is undefined.

});

app_view.js(Backbone.js)は次のようになります...

... 


 // create method make new todoItem and send new todoItem to server.But currently it doesn't work.


create:function(e){

var input = $(this.el).find("#new-todo");
 if (e.keyCode !== 13) return;
   var text = input.val();
   var todo = new Todo({title:text});
    // It send POST request to "/api/todos"
   todo.save({title: text,body: "hello world"});
   var todoView = new TodoView({model: todo});
    $("#todo-item").append(todoView.render().$el);
                        $(input).val("");
                        this.collection.add(todo);
                    }
        });

このコードは、クライアントからサーバーにデータパスを送信しません。何か考えはありますか?前もって感謝します。

4

1 に答える 1

1

モデルデータは、Expressのリクエストオブジェクト(req.title)に直接表示されません。

bodyParser()を使用してHTTPPOSTボディを解析するようにexpressを構成したと仮定します

app.use(express.bodyParser());

次に、バックボーンモデルがrequest.dataに含まれます。

app.post("/api/todos",function(req,res){
        console.log(req.body.title);

});
于 2012-08-17T09:30:49.757 に答える