我有一个简单的 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>

现在我的路由赶上了快车的路由.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);
        });
})

当我提出请求时,我只会得到一个"不能放"或"不能删除"错误.

我曾try 通过chomes RESTful客户端提出同样的请求,结果也是一样的.

我读过一个和我有同样问题的话题,尽管下面的 comments 并没有解决我的问题.

我调查过的问题

Are the PUT, DELETE, HEAD, etc methods available in most web browsers?

以及其他一些人.

感谢您的帮助.

推荐答案

Update

正如乔纳森·洛诺夫斯基(Jonathan Lonowski)指出的,PUT也可以被使用,所以你可以忽略我以前的答案.

Old answer

试着换一行

app.put('/users/:name', function(req, res) {

app.post('/users/:name', function(req, res) {

since you are trying 到 submit the form

Mongodb相关问答推荐

MongoDB中的字符串聚合

在提供的文档(_Id)之后和之前,是否有一个Mongo操作来获取已排序(和/或过滤)集合中的文档计数?

如何使用聚合管道查找未销售但存在于产品详细信息集合中的产品的ID

如何使用mongodb进行离线开发?

Mongoose 查询以获取内部数组和该内部数组中的特定元素

Mongodb,在一个查询中用正则表达式更新部分字符串

找到一个用户,然后使用 MongoDB 根据他们的总分获得他们的排名

mongoDB vs mySQL - 为什么在某些方面比另一个更好

更新 MongoDB 中嵌套实体数组中的属性

pymongo 排序和 find_one 问题

mongodb上不区分大小写的查询

使用 MongoDB 进行分页

MongoDB插入引发重复键错误

如何从 node.js 以编程方式执行 mongodump 命令?

MongoDB 嵌套 OR/AND 在哪里?

文本的 MongoID 数据类型

Mongoimport json 文件更新或覆盖..?

填充mongoose后查找

MongoDB $elemMatch $in

MongoDB聚合框架的索引优化