当 router.post() 有一个 :id 时,我在我的表单操作中放了什么
What do I put in my form action when the router.post() has an :id
我不确定如何将数据提交到我的更新表单以及我必须在操作字段中输入什么,因为 router.post 有一个 :id。下面是我的代码:
router.post('/gymupdate/:id',async(req,res) => {
let gymName = req.body.firstname;
let location = req.body.city;
let phoneNumber = req.body.mobile;
let priceRange = req.body.price;
let id = req.params.id;
try{
check2(gymName,location,phoneNumber,priceRange);
if(!id) throw 'Pleaase provide an id';
var checkForHexRegExp = new RegExp("^[0-9a-fA-F]{24}$");
if(checkForHexRegExp.test(id)===false) throw 'Not a valid objectid';
const updategym = await gymData.update(id,gymName,location,phoneNumber,priceRange)
if(updategym)
res.status(200).redirect('/gyms')
else {
res.status(500).render('gymbars/updategym', {title: "Error", error: 'Internal Server Error'})
}
}
catch(e){
res.status(400).render('gymbars/updategym', {title: "Error", error: e})
}
});
表格:
<form method="POST" action="/gyms/gymupdate/:id" id="signup-form" class="signup-form"></form>
action中的内容不起作用,那么如何在类似于router.post方法的action部分添加id字段?
这是用户获取 id 的方式:
router.get('/gymupdate/:id',async(req,res) => {
const id = req.params.id;
const values = await gymData.getGym(id);
try{
if (req.session.user && req.session.user.role === 'owner'){
res.render('gymbars/updategym',{values:values})
}
else if(req.session.user && req.session.user!=='owner')
res.redirect('/login')
else{
res.redirect('/login')
}
}
catch(e){
res.sendStatus(500);
}
});
所以逻辑是这样的,我将健身房列表显示为链接,一旦您单击它们,您就会进入健身房简介。那里有一个按钮,上面写着更新这个健身房,一旦点击它就会进入这里正在谈论的更新健身房页面。
如果你在前端使用任何语言,有一种方法可以编写动态 URL
但如果您使用纯 HTML 那么这将对您有所帮助
<form id="form_id" method="post" action="/aa">
<input type="submit">
</form>
<script>
document.getElementById("form_id").action = "/bbbbbb";
</script>
需要带上身份证
let id_to_pass//=get id which you want to pass in post api
document.getElementById("form_id").action = "/gymupdate/"+id_to_pass;
我不确定如何将数据提交到我的更新表单以及我必须在操作字段中输入什么,因为 router.post 有一个 :id。下面是我的代码:
router.post('/gymupdate/:id',async(req,res) => {
let gymName = req.body.firstname;
let location = req.body.city;
let phoneNumber = req.body.mobile;
let priceRange = req.body.price;
let id = req.params.id;
try{
check2(gymName,location,phoneNumber,priceRange);
if(!id) throw 'Pleaase provide an id';
var checkForHexRegExp = new RegExp("^[0-9a-fA-F]{24}$");
if(checkForHexRegExp.test(id)===false) throw 'Not a valid objectid';
const updategym = await gymData.update(id,gymName,location,phoneNumber,priceRange)
if(updategym)
res.status(200).redirect('/gyms')
else {
res.status(500).render('gymbars/updategym', {title: "Error", error: 'Internal Server Error'})
}
}
catch(e){
res.status(400).render('gymbars/updategym', {title: "Error", error: e})
}
});
表格:
<form method="POST" action="/gyms/gymupdate/:id" id="signup-form" class="signup-form"></form>
action中的内容不起作用,那么如何在类似于router.post方法的action部分添加id字段?
这是用户获取 id 的方式:
router.get('/gymupdate/:id',async(req,res) => {
const id = req.params.id;
const values = await gymData.getGym(id);
try{
if (req.session.user && req.session.user.role === 'owner'){
res.render('gymbars/updategym',{values:values})
}
else if(req.session.user && req.session.user!=='owner')
res.redirect('/login')
else{
res.redirect('/login')
}
}
catch(e){
res.sendStatus(500);
}
});
所以逻辑是这样的,我将健身房列表显示为链接,一旦您单击它们,您就会进入健身房简介。那里有一个按钮,上面写着更新这个健身房,一旦点击它就会进入这里正在谈论的更新健身房页面。
如果你在前端使用任何语言,有一种方法可以编写动态 URL
但如果您使用纯 HTML 那么这将对您有所帮助
<form id="form_id" method="post" action="/aa">
<input type="submit">
</form>
<script>
document.getElementById("form_id").action = "/bbbbbb";
</script>
需要带上身份证
let id_to_pass//=get id which you want to pass in post api
document.getElementById("form_id").action = "/gymupdate/"+id_to_pass;