2014-01-31 17 views
0

我從Backbone.js的使用下面的代碼訪問Backbone.js的如何使用Node.js快遞框架

Courses = Backbone.Collection.extend({ 
       url:'/courses' 
      }); 
var courses = new Courses(); 
courses.fetch({data:{course_name:"data structures"},type:'POST' }); 

在我使用節點的後臺發送POST請求到服務器colection.fetch POST有效載荷.JS快遞框架和聽使用

app.post('/courses',function(req,res){ 
    console.log('POST reached'); 
}); 

的要求,但我不能夠訪問來自Backbone.js的發送POST數據或POST有效載荷獲取方法。 我試過req.body.data,req.body.course_name,req.body.data.course_name,他們沒有給我POST數據。如何獲得POST負載?

回答

1

你可以做這樣的事情:

var CourseModel = Backbone.Model.extend({}); 
var CourseCollection = Backbone.Collection.extend({ 
    model: CourseModel 
    url: '/courses' 
}); 
var courses = new CourseCollection(); 
courses.create({course_name:"data structures"}); 

然後在您的快遞路線,你應該看到它在req.body來通過。

app.post('/courses',function(req, res){ 
    console.log('POST: ' + JSON.stringify(req.body)); 
}); 

此外,您需要確保包含正確的中間件來處理正文中的JSON數據。例如:

app.use(express.bodyParser()); 
app.use(express.methodOverride()); 

對於較新版本的快車,而不是使用:

app.use(express.json()); 
app.use(express.urlencoded()); 
+0

POST請求被髮送,但要POST:在backend.Here未定義的代碼是從我的GitHub庫https://github.com/Karthic-Hackintosh/Codes-From-My-Blog-posts/tree/master/112 –

+0

從查看代碼片段看來,您似乎缺少一些中間件。我更新了我的答案。 –

+0

現在正在工作,謝謝:) –