2012-07-02 2 views
1

저는 클라이언트 측에서 Backbone.js를 사용하고 서버에서 express.js를 사용하고 있습니다. 백본을 통해 모델 업데이트를 저장/저장하려고합니다. 나는 Backbone.sync에 아무 것도하지 않았으므로 그것은 단지 오래된 $ .ajax 일 것입니다. 서버에서 Node.js/express.js/Backbone.js : req.body.keys가 정의되지 않았습니까?

, 나는 빠른 CONSOLE.LOG는 것을 보여준다 I foreach는 '정의의, 충분히 확인'방법을 호출 할 수 없습니다 '라는 오류 메시지가 간단한

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

때마다있어 req.body.keys는 정의되지 않았습니다. console.logs의 또 다른 빠른 커플은 Object.keys와 'forEach'가 잘 됐음을 보여 주며, typeof req.body는 object입니다.

누구나 무슨 일이 벌어지고 있는지 알아보세요. 나는

+0

는 CONSOLE.LOG (req.body)'시도 '무슨 일이 일어나고 있는지 알아봐야한다. 'console.log (req)'시도해 볼 수도 있습니다 –

답변

3

keys에 대한 구문이 다른 ... JSON.parse (req.body)를 시도하고 유명한 '예기치 않은 토큰 오'오류가 발생했습니다 :

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

req.body.keys가 정의되지 않았습니다 –

+1

왜냐하면'keys'는 Object 프로토 타입의 일부가 아니기 때문에 생성자/Object 네임 스페이스에 있습니다. 열쇠를 원하는 객체를 전달합니다. – evilcelery

+0

나는 그가 {{keys : [1,2,3]}와 같이 요청의 본문에'keys '를 보냈다고 생각했다. lol –