2017-03-06 5 views
-1

https://github.com/AEkman/Quiz/blob/master/app.jsPOST에서/: id를 얻는 방법?

나는/: id를 가져 와서 quizId라는 변수에 저장하려고합니다. 나는 경로 POST하려면이 링크를 사용하고 있습니다 : 왜 난 단지 받고 오전이 내 POST 기능

app.post('/takequiz/:id', function(req, res) { 
    var quizId = req.body.id; 
    console.log(quizId); 

입니다

'정의되지 않음'

답변으로? 대신 GET을 사용할 때 작동합니까? 나는 params와 쿼리를 시도했지만 행운은 없다.

+1

파이프 라인에서 본문 파싱 미들웨어가 부족할 수 있습니다. –

+0

그것은 신체에 분명히 있어서는 안됩니다, 당신은 물론 시체가 아닌 URL에 그것을 통과 시켰습니다. 그것은 params에 있어야합니다. –

+0

express-bodyparser는 앱에 보안 결함이 있다는 것을주의하십시오. –

답변

1

신체의 일부가 아니며 URL의 일부이기 때문에.

req.params.id 대신 req.body.id을 시도하면 문제가 없습니다.

+1

"매개 변수와 쿼리를 사용해 보았지만 행운은 없습니다." –

+0

Express *에서 url 매개 변수에 액세스하면'req.params.whatever'를 사용하여 * 작동합니다. 그래서 이것이 작동하지 않는다면 에러는 다른 곳에 있어야하지만'req.params.id'를 사용하는 것은 정확하고'req.body.id'는 사용하지 않는 것이 좋습니다. 그리고 OP가 보여준 코드 스 니펫에서, * req.params.id'가 *있다. 그러면 * 작동 할 것이다. –

+0

맞습니다. 사용자가 .params를 시도했지만 작동하지 않으면 질문에 대답합니까? –

-1

jquery로 아약스를 사용하면 API 나머지의 게시 기능에 데이터를 보낼 수 있습니다.

// data 
var takequiz1={id:4, message:"Hello Word"}; 

// Use AJAX to post the object 

    $.ajax({ 
     type: 'POST', 
     data: takequiz1, 
     url: 'http://localhost:3000/takequiz/', 
     dataType: 'JSON' 
    }).done(function(response) { 

    }); 

//POST FUNCTION API NODE JS 
router.post('/takequiz',function(req,res,next){ 
     var id= req.body.id; 
     var message = req.body.message; 
}); 
+0

그것은 나를 도와주지 않을 것이다.현재 경로의/: id를 가져 와서 INSERT 쿼리를 사용하여 ID를 다른 변수와 함께 mysql에 보냅니다. –