2017-03-06 81 views
-1

https://github.com/AEkman/Quiz/blob/master/app.js如何获取路由POST中的/:id?

我试图获取/:id并将其保存到名为quizId的变量。我使用这个链接进行路由POST:

这是我的POST功能

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

为什么我只获得

'undefined'

作为答案?当我使用GET时,这起作用吗?我已经尝试过参数并且查询也不过运气。

+1

您可能缺少管道中的正文解析中间件。 –

+0

它绝对不应该在身体,你通过它当然不是身体的网址。它应该是params。 –

+0

小心使用express-bodyparser,因为它会将您的应用暴露给一些安全漏洞 –

回答

1

因为它不是身体的一部分,而是网址的一部分。

尝试req.params.id而不是req.body.id,一切都应该没问题。

+1

“我已经尝试过参数并查询,但没有运气。” –

+0

使用'req.params.whatever'工具*在Express *中访问url参数。所以如果这不起作用,错误必须在其他地方,但使用'req.params.id'是正确的,而使用'req.body.id'则不正确。从OP显示的代码片段中可以看出,它*具有*为'req.params.id',然后它*将*工作。 –

+0

正确,但如果用户尝试使用.params并且它不起作用,这是否回答此问题? –

-1

您好使用jQuery与ajax发送数据到api rest的post函数。

// 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,并将该ID与INSERT查询一起发送给mysql以及其他一些变量。 –

相关问题