为了账号安全,请及时绑定邮箱和手机立即绑定

router.put 和 router.delete 的 PUT 和 GET 方法不起作用(快速)

router.put 和 router.delete 的 PUT 和 GET 方法不起作用(快速)

一只萌萌小番薯 2023-08-05 20:46:06
我正在构建一个 CRUD 应用程序。我陷入了更新和删除操作,其他一切似乎都正常。所以我使用方法覆盖来发送 PUT 和 GET 请求。这是相关代码:app.jsconst methodOverride = require('method-override');app.use(methodOverride('_method'));这是我写的更新和删除内容。我正在使用 Mongodb 的 Monk 驱动程序。index.jsvar router = express.Router();router.put('/videos/:id', function(req, res){    var collection = db.get('videos');    var item = {        title: req.body.title,        genre: req.body.genre,        image: req.body.image,        description: req.body.desc    };    var id = req.params.id;    collection.update(    {_id: id}, {        $set: item    });    res.redirect('/videos');});router.delete('/videos/:id', function(req, res){    var collection = db.get('videos');    collection.remove({"_id" : req.params.id});    res.redirect('/videos');});对于删除表格<form action="/videos/<%= video._id %>?_method=DELETE" method="POST"><button type="submit" class="btn btn-danger">Delete video</button></form>用于更新表格<form method="POST" action="/videos/<%= video._id %>?_method=PUT">    <input type="hidden" name="_method" value="PUT"></form>我搜索了很多地方,当我点击提交按钮时仍然出现网页未找到(404)错误。我缺少什么?提交按钮应该调用我在 中展示的两个方法index.js。
查看完整描述

3 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

我改变了router.put和。router.deleterouter.post



查看完整回答
反对 回复 2023-08-05
?
哔哔one

TA贡献1854条经验 获得超8个赞

表格方式与快捷路线不匹配。

两者的表单方法分别是POST。

但是,如果您查看快速路线,方法是 PUT 和 DELETE。

尝试更改路线并再次测试是否有效。


查看完整回答
反对 回复 2023-08-05
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

检查您是否导出了index.js 文件并将其导入到app.js 中,我认为它应该可以正常工作,但请尝试重新启动服务器并查看它是否有效。:)



查看完整回答
反对 回复 2023-08-05
  • 3 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信