好吧所以我有一個簡單的node.js/express.js/mongodb應用程序設置在這裏與我的配置如下。 表示不能使用PUT/DELETE方法。出了什麼問題?
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="https://stackoverflow.com/users/#{user.name}">
<input type="hidden" name="_method" value="PUT"/>
</form>
我的路由器捕捉與表達。把路線()方法
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);
});
})
當我做,我只是得到了請求「不能把」或「無法刪除「錯誤。
我試圖通過chomes RESTful客戶端做出同樣的請求,結果相同。
我讀過一個主題女巫與我有同樣的問題,雖然下面的評論答案並沒有解決我的問題。
問題我已經調查 expressjs support for method delete and put without the methodoverride
Are the PUT, DELETE, HEAD, etc methods available in most web browsers?
隨着其他幾個人。 我也多次引用了express.js和mongo文檔。 我只是不能認爲會出現什麼問題。
任何幫助表示讚賞。
你有沒有找到解決方案?我正在做同樣的事情,似乎無法讓DELETE通過。 – Mike 2013-05-31 14:23:05
你最終做了什麼?我有同樣的問題 - http://stackoverflow.com/questions/17603372/express-rest-server-losing-payload-from-ember-data-put – 2013-07-15 12:26:17
@Mike我接受的解決方案如下。 – 2013-07-15 22:31:53