我正在尝试通过admin.ejs页面删除猫鼬数据库中的雇员。
到目前为止,我已经尝试使用方法覆盖处理普通的POST请求和DELETE,但均无效。
//尝试不使用方法替代
// Schema //
const empSchema = {
name: String,number: String
};
const Employee = mongoose.model("Employee",empSchema);
// admin.ejs //
<form action="/deleteEmp" method="POST" >
<div>
<label>Name</label>
<input type="text" name="name">
</div>
<button class="btn btn-primary" type="submit">Delete Employee</button>
</form>
// app.js //
app.post("/deleteEmp",function(req,res) {
Employee.findOneAndDelete({name: req.params.name},function(err,result) {
if(!err) {
console.log('User Deleted');
res.redirect("admin");
} else {
console.log(err);
}
});
});
//尝试使用方法覆盖//
// admin.ejs //
<form method="POST" action="/deleteEmp?_method=DELETE">
<div>
<label>ID</label>
<input type="text" name="id">
</div>
<button class="btn btn-primary" type="submit">Delete Employee</button>
</form>
// app.js //
app.delete("/deleteEmp",res) {
Employee.findOneAndDelete({name: req.params.name},result)
{
if(!err) {
console.log('User Deleted');
res.redirect("admin");
} else {
console.log(err);
}
});
});
在我尝试不使用方法重写的情况下,如果将其设置为POST方法而不是DELETE,但是它将被删除,则它将通过。如果该方法设置为DELETE,则返回无法获取/ deleteEMP
我在方法重写方面没有任何成功,所以我想知道我是否缺少某些东西?