我的PUT路线有问题,但我不确切知道是什么。
首先我创建了我的架构:
var databaseSchema = mongoose.Schema({
date: type {
type: Date,
{
_id: String,
});
var Db = mongoose.model('Db', databaseSchema);
创建post方法后:
app.post('/db', function(req, res) {
var body = req.body,
database = new Db(body);
database.save(function (err) {
if (err) {
console.log('err', err);
res.status(500).json(err);
return;
}
res.status(200).json('ok');
console.log('Success');
在我的INDEX中,我使用Ajax创建了一个GET,以HTML格式显示数据:
$.ajax({
type: 'GET',
url: host + '/db',
success:function(datas){
datas.forEach (function (data) {
var HTML = [];
HTML.push('<tr class="datas">');
HTML.push('<td data-id="' + data._id + '"/> </td>');
HTML.push('</tr>');
$('tbody').append(HTML.join(''));
我在索引中创建了一个日期,并且我尝试将它与ID一起发送到我的数据库,为此我使用PUT方法,如下所示:
$.ajax({
type: 'PUT',
url: host + '/db',
data: {
_id: update.attr('data-id'),
date: $('.date').val();
},
sucess:function (success) {
alert('ok');
},
error:function(err) {
console.log(err);
}
});
最后,我在app.put路线上更新了她,就像这样:
app.put('/db', function(req, res) {
Reserva.findById(req.param('date'), function(err, database){
database.save(function (req, res) {
if (err) {
console.log('err', err);
}
res.status(200).json('ok');
console.log('Update');
});
});
});
问题是看跌期权不起作用,我没有发现错误,有人能给我一个亮点吗?
答案 0 :(得分:0)
许多浏览器(甚至是现代浏览器)都不支持GET
和POST
之外的任何请求方法。要使这些工作起作用,您必须做一些事情:
快递应用:
method-override
包。var methodOverride = require('method-override');
app.use(methodOverride('_method'));
客户端JS:
修改您的AJAX调用以在数据中包含_method
字段。
$.ajax({
type: 'POST', // Change this to a method everyone understands
url: host + '/db',
data: {
_id: update.attr('data-id'),
date: $('.date').val(), // <- Remove the semicolon that was here
_method: 'PUT'
},
// ...
});