Express不能PUT/DELETE方法.出了什么问题?

Dan*_*ate 15 rest mongoose mongodb node.js express

好吧我有一个简单的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");
Run Code Online (Sandbox Code Playgroud)

问题出在我尝试发出PUT或DELETE请求时.我的形式很简单

<form method="POST" action="/users/#{user.name}">
    <input type="hidden" name="_method" value="PUT"/>
</form>
Run Code Online (Sandbox Code Playgroud)

现在我的路由器使用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);
        });
})
Run Code Online (Sandbox Code Playgroud)

当我发出请求时,我只是得到一个"无法PUT"或"无法删除"错误.

我试图通过chomes RESTful客户端以相同的结果发出同样的请求.

我已经阅读了一个与我有同样问题的话题,尽管在评论之后答案并没有解决我的问题.

问题我已经研究了 表达式删除和没有方法覆盖的表达式

大多数Web浏览器中是否提供PUT,DELETE,HEAD等方法?

和其他几个人一起.我也多次引用了express.js和mongo文档.我只是想不出什么可能出错.

任何帮助表示赞赏.

use*_*109 10

更新

正如Jonathan Lonowski指出的那样PUT也可以使用,所以你可以忽略我的旧答案.获取Cannot PUTCannot POST错误意味着您的回调未成功执行.我的猜测是Users.update失败,这就是为什么它不能POST或PUT.你能检查一下吗?

老答案

尝试更改此行

app.put('/users/:name', function(req, res) {
Run Code Online (Sandbox Code Playgroud)

app.post('/users/:name', function(req, res) {
Run Code Online (Sandbox Code Playgroud)

因为您正在尝试提交表单