如何在nodejs中向post请求发送id(或隐藏字段)

时间:2015-07-26 19:15:54

标签: node.js

我有一个帖子对象,我希望用户能够编辑该对象,因此我的编辑页面有一个像viewPost?id = blahblah的URL。现在当我发送帖子请求时,我如何将id发送到服务器?我在网上看到了一些建议,比如有一个带有id的隐藏输入字段,但我觉得这些很容易被攻击,我确信这有不同的方式。

2 个答案:

答案 0 :(得分:1)

您可以使用路线中声明的URL参数,如下所示:

app.post('/path/:id', function(req, res, next){
    console.log(req.params.id);
    next();
});

然后将您的表单发布到/path/123,其中123是ID。

注意:不要忘记清理路线中的id,以确保它不包含JSON字符串或任何其他可能造成损害的内容。

答案 1 :(得分:0)

假设您正在使用把手模板引擎,并且您已经在视图中编辑了要编辑的项目,那么您的表单将如下所示:

`<form method="POST" action="/items/edit")>
    <input type="hidden" name="item" value="{{this._id}}">
    <button type="submit">Edit</button>
 </form>`

this._id 是特定项目数据库的ID

此ID可以通过从表单正文中调用其名称来读取,如下所示:

`router.POST('/items/edit', function(req, res){
    var id = req.body.item;
});`

我希望有所帮助!