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