Код ниже, проверяет. имеется ли в коллекции device мобильное устройство с идентификатором aid. Если да, то он обновляет поля localTime, battery, возвращая ответ. что операция отработала корректно. Если устройство не обнаружено, оно добавляется со всеми полями, при условии, что в коллекции user присутствует email адрес req.body.email.
Device.find({ aid: req.body.aid })
.select()
.exec()
.then(dev => {
if (dev.length >= 1) {
console.log('Обновляем устройство.');
const UpdateDevice = new Device({
localTime: req.body.localTime,
battery: req.body.battery
});
Device.update({ aid: req.body.aid }, { $set: UpdateDevice })
.exec()
.then(result => {
if(result){
res.status(200).json({
"id": dev[0]._id,
"result":"ok",
});
}
})
} else {
console.log('Добавляем новое устройство.');
const NewDevice = new Device({
_id: new mongoose.Types.ObjectId(),
localTime: req.body.localTime,
setupNumber: req.body.setupNumber,
email: req.body.email,
aid: req.body.aid
});
NewDevice.save().then(result => {
if(result) {
mailer(`В ваш аккаунт успешно добавлено новое устройство`);
User.find({ 'local.email': req.body.email })
.select()
.exec()
.then(user => {
res.status(200).json({
"id": NewDevice['_id'],
"result":"ok",
});
});
} else {
res.status(500).json({
Error: "Ошибка добавления мобильного устройства в б.д..."
});
}
}).catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
}
});
Код кажется довольно мусорным. Как бы Вы его оптимизировали и упростили?