2012-07-02 72 views
1

我在客戶端使用Backbone.js,在服務器上使用express.js,我試圖通過Backbone保存/放置模型更新。我對Backbone.sync沒有做任何事情,所以它應該只是簡單的舊$ .ajax。Node.js/express.js/Backbone.js:req.body.keys未定義?

在服務器上,我有一個簡單的

app.put('my-url', function(req, res){ 
    req.body.keys.forEach(function(key){ 
    // do stuff with key 
    }); 
}); 

每一次,我得到一個錯誤信息:「不能調用方法‘的未定義的forEach’,果然一個快速的console.log顯示, req.body.keys未定義。另一個console.logs對象表明,Object.keys和'forEach'都很好,這種類型的req.body是對象。

任何人看到發生了什麼問題?我試圖JSON.parse(req.body),並得到了著名的 '意外的標記O' 錯誤...

+0

嘗試'的console.log(req.body) '找出發生的事情。你甚至可以嘗試'console.log(req)' –

回答

3

keys的語法是不同的:

Object.keys(req.body).forEach(function(key){ ... }) 
+0

他說他得到了req.body.keys undefined –

+1

這是因爲'keys'不是Object原型的一部分,它在構造函數/ Object命名空間中。你傳入你想要的鍵。 – evilcelery

+0

我假設他在請求的主體中發送了'keys',就像'{keys:[1,2,3]}''一樣。大聲笑 –