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 PUT或Cannot 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)
因为您正在尝试提交表单
| 归档时间: |
|
| 查看次数: |
47501 次 |
| 最近记录: |