Javascript 使用router.PUT和router.delete的PUT和GET方法不工作(express)
我正在构建一个CRUD应用程序。我被更新和删除操作卡住了,其他一切似乎都在工作。所以我使用方法重写来发送PUT和GET请求 以下是相关代码:Javascript 使用router.PUT和router.delete的PUT和GET方法不工作(express),javascript,html,node.js,express,Javascript,Html,Node.js,Express,我正在构建一个CRUD应用程序。我被更新和删除操作卡住了,其他一切似乎都在工作。所以我使用方法重写来发送PUT和GET请求 以下是相关代码: app.js const methodOverride = require('method-override'); app.use(methodOverride('_method')); var router = express.Router(); router.put('/videos/:id', function(req, res){ va
app.js
const methodOverride = require('method-override');
app.use(methodOverride('_method'));
var 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');
});
以下是我为更新和删除所写的内容。我使用mongodb的monk驱动程序
index.js
const methodOverride = require('method-override');
app.use(methodOverride('_method'));
var 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)错误。
我错过了什么?
submit按钮应该调用我在
index.js
中显示的两种方法,检查是否导出index.js文件并将其导入app.js,
我认为它应该可以正常工作,但试着重新启动服务器,看看它是否可以工作。:)
表单方法和快捷路线不匹配
两者的表单方法分别为POST
但是,如果查看express routes,则该方法将被放置和删除
尝试更改路由并再次测试是否有效。我更改了
路由器。放置和路由器。删除到路由器。发布HTML源代码中实际呈现了什么?404,找不到网页。抱歉,我说的是表单的来源。来源是一个表单,用户可以在其中输入详细信息,然后输出到数据库。是的,我理解。我希望你可以共享html表单。你是否从index.js导出路由并导入到app.js文件中?是的,我确实这样做module.exports=router
。它们作为POST请求发送,方法覆盖将它们转换为PUT和DELETE请求。这是我从方法重写文档中读到的。我想删除并将其放入数据库。标准的帖子要求不合适。那么我认为你应该包括正确的标签。有相关知识的人可以回答这个问题。我不这么认为,这是node.js或javascript问题。包含问题的库标签