У меня возникают проблемы с простым методом PUT в Node.js (MongoDB collection.update). Любая помощь будет оценена по достоинству. На данный момент я не получаю ошибку, просто пустой ответ.Метод PUT в Node.js/MongoDB
index.js:
app.put('/UpdateValues/:collection/:entity', function(req, res) {
var params = req.params;
var entity = params.entity;
var collection = params.collection;
var value1 = req.body.value1;
var value2 = req.body.value2;
if (entity) {
collectionDriver.updateValues(collection, entity, value1, value2, function(error, objs) {
if (error) { res.status(400).send(error); }
else { res.status(200).send(objs); }
});
} else {
res.send(400, {error: 'bad url', url: req.url});
}
});
collectionDriver.js:
CollectionDriver.prototype.updateValues = function(collectionName, nameDoc, value1new, value2new, callback) {
this.getCollection(collectionName, function(error, the_collection) {
if (error) callback(error);
else {
the_collection.update(
{ name: nameDoc },
{ $set: {
value1: value1new,
value2: value2new
}},
function(err, result) {
if (err) throw err;
}
);
}
});
};
Тестирование с:
$ локон -i -X PUT -H «Content-Type: применение/JSON '-d' {"value1": "1", "value2": "1"} '
Параметр 'callback' вы передаете в никогда не быть ссылки на успех. Также '.update()' не возвращает измененный документ. Вероятно, вы хотите '.findOneAndUpdate()', если вы ожидаете модифицированного ответа. –
спасибо Блейкс! Значения обновляются, только обратный вызов не происходит. – beachCode