好的,所以我在这里设置了一个简单的 node.js / express.js / mongodb 应用程序,我的配置如下。
var express = require('express'),
mongoose = require('mongoose');
http = require('http');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
//middleware stack
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + "/public"));
});
mongoose.connect("mongodb://localhost/hello");
问题出在我尝试发出 PUT 或 DELETE 请求时。我的表格就是这么简单
<form method="POST" action="/users/#{user.name}">
<input type="hidden" name="_method" value="PUT"/>
</form>
现在我的路由器使用 express .put() 方法捕获路由
app.put('/users/:name', function(req, res) {
var b = req.body;
Users.update(
{ name: req.user.name },
{ name: b.name, age: b.age, email: b.email },
function(err) {
res.redirect('/users/'+b.name);
});
})
当我提出请求时,我只会收到“Cannot PUT”或“Cannot DELETE”错误。
我试图通过 chomes RESTful 客户端发出相同的请求,结果相同。
我读过一个话题,女巫和我有同样的问题,尽管按照评论回答并没有解决我的问题。
我研究了 expressjs 对方法删除和放置方法的支持的问题,而没有方法覆盖
大多数 Web 浏览器中是否提供 PUT、DELETE、HEAD 等方法?
和其他几个人一起。我还多次引用了 express.js 和 mongo 文档。我只是想不出可能出了什么问题。
任何帮助表示赞赏。