我正在使用mongo构建节点应用程序。我正在尝试在我的应用资源上执行基本的CRUD,即mongo。创建和读取数据工作正常,但当我尝试更新或删除mongo中的数据时会出现问题。
我已经使用摩根来记录所有请求,在我的控制台终端中,我看到%20
附加到我的资源端点,如:
GET /admin/routes/delete-page/%205a958ac44d47582a841a0f5c 404 4.641 ms - 191
随后我的编辑和删除请求失败。
这是我的删除请求代码的示例:
router.delete('/delete-page/:page_id', (req, res)=>{
let pageId = req.params.page_id;
console.log(pageId);
Pages.findByIdAndRemove({_id: pageId})
.exec()
.then(result => {
if (result){
console.log(`Page Deleted`);
req.flash('success', 'Page Deleted');
res.redirect('/admin/routes');
} else {
console.log(`Error Deleting Page`);
}
})
.catch(err => {
console.log(`Requested Page Not Found`);
console.error(err);
});
});
为什么会这样?
GET /admin/routes/delete-page/%205a958ac44d47582a841a0f5c
%20
有一个url编码的空间。有些事情正在产生一个破碎的环节。最有可能的候选人是你的观点(或者生成url的人)。我的第二个最佳猜测是某种代理(例如,错误的nginx规则)。
%20
意味着你提供的url
有一个空间。这没有你的要求。
如果我理解正确,
%20表示由“%20”替换的空格。
状态404是找不到站点,URL是否正确?