2014-09-21 3 views
0

나는 "twit"이라는 npm을 사용하고 있으며 궁극적으로 Twitter 상태 업데이트를 게시하고 있습니다. 사용자가 양식을 작성하게하고 양식의 조치는 home/tweet/과 같은 경로에 대한 게시물 요청입니다.API 양식 제출 양식 제출, 게시 경로가 필요합니까?

내 익스프레스 라우터에는 home/tweet/ 경로가 있습니다. 양식 데이터는 실제로 게시되지 않습니다. 이유는 내가 양식 필드 qith req.body를 추출하고 라우터 내부에서 새로운 트윗을 작성하기 위해 Twitter에 게시물 요청을 작성하기 때문입니다. 여기 보이는 모양이 있습니다 :

router.post("/tweet/", function(req,res){ 
    var tweet = req.body.tweet; 
    Twitter.post('statuses/update', { status: myFuncs.encode(myFuncs.key, tweet) }, function(err, data, response) { 

    }); 
    res.redirect('/'); 
}) 

비록 이것이 작동하더라도, 그것은 나에게 조금 해로운 느낌입니다. 이것을 설계하는 더 좋은 방법이 있습니까? req.body을 사용하여 게시물 요청을 사용하거나 req.query을 사용하여 요청을 가져 오지 않고 양식 필드를 추출하는 더 좋은 방법이 있습니까?

+1

정확하게 이해한다면 사용자가 양식을 통해 트윗을 전송할 때 트위터가 직접 트위터로 보내지는 것처럼 코드가 본질적으로 보이기를 원하십니까? 나는 내가 대답을 가지고 있다고 생각하기 때문에 묻고 있는데, 나는 잘못된 질문에 대답하고 있을지 모른다. –

+0

예, 현재 "게시"경로는 어디에도 데이터를 게시하지 않습니다. req.body의 데이터를 어느 정도 잡아냅니다. 그런 다음 데이터를 가져온 후 트위터에 게시됩니다. 이것은 나에게 약간의 해킹처럼 보입니다. 나는 사용자 req.body를 잡기 위해 추가 게시물 요청 라우트를 만들 필요없이 트위터에 곧바로 게시 할 수 있어야한다고 생각합니다. – HelloWorld

+0

트위터가 [CORS] (http : //en.wikipedia.)를 활성화하지 않은 것처럼 보일 수 있으므로 추가 라운드 트립 (서버에서 클라이언트로, 그리고 서버에서 트위터로, 그리고 다시)을 방지 할 수 있기 때문에 이점이 있습니다. org/wiki/Cross-origin_resource_sharing)을 API에 추가합니다. –

답변

1

있지만, 나는 트위터의 API에 CORS 활성화되지 않았기 때문에 당신이 불행하게도 넣어 --- 만대로 --- "해키"보이는 것에 동의합니다, 당신은 선택의 여지가 하지만가 중간을, 같은 사용하지해야 귀하의 서버로. 또는 타사 서비스를 사용할 수도 있지만 여전히은 서버와 같은 중개자입니다.