【发布时间】:2018-02-15 16:26:47
【问题描述】:
我正在尝试修复我的票务系统,但在尝试更新集合“票证”中的 1 个字段时不断遇到问题。基本上,如果 'closed' 变量等于 0,它是一张开放的票,如果它等于 1,它是一张封闭的票。由于某种原因,它不会正确写入数据库并在 AJAX 调用中给我一个错误。请让我知道如何解决此问题,非常感谢!
前端
$('.closetick').click(function () {
id = $(this).val();
var closed = '1';
$.ajax({
method: 'PUT',
url: '/close-ticket/' + id,
data: {
closed: closed
},
success: function (data) {
window
.location
.reload('/admin-dashboard');
},
error: function () {
console.log('error');
}
})
});
后端
app.put('/close-ticket/:id', isLoggedIn2, function (req, res) {
var id = new ObjectID(req.params.id);
var query = {
_id: id
}
var data = {
closed: req.body.closed
};
mongodb.connect(url, function (err, db) {
var collection = db.collection('tickets');
if (err) {
throw err;
} else {
var collection = db.collection("tickets");
collection.findOneAndUpdate({
_id: query
}, {
$set: {
closed: data
}
}, {
upsert: true
}, function (err, doc) {
if (err) {
throw err;
} else {
console.log("Updated");
}
db.close();
});
}
});
});
【问题讨论】:
-
尝试做一个 console.log(data) ;在 window.location.reload 之前
-
试试
{$set: {closed: data.closed}}并检查 -
我尝试添加 console.log(data) ;它说它没有定义。
-
您在
req.body中获得数据了吗??检查一次