Я использую метод findOneAndUpdate от Mongoose и не могу получить от него никакой полезной информации.Я пытался использовать запрос, который возвращается после его вызова (в updatedUser
), но он возвращает null
;Я также попытался включить аргумент обратного вызова, но когда я это делаю, я получаю null
для обоих err
и doc
.
Контекст: я использую Jest для создания набора тестов,и написание теста для этой функции.У меня была функция, работающая в моем приложении вне набора тестов, и хотя я изменил части функции, я ничего не изменил в вызове findOneAndUpdate, кроме добавления аргумента обратного вызова.
Ожидаемое поведение: Либо «err», либо «doc» не возвращает ноль, поэтому я, по крайней мере, знаю, что происходит.
Я работал с Мокко и изучал Jest, и я обнаружил пару другихзанимательные вещи, которые делает Джест.По своему опыту я знаю, что, скорее всего, я упускаю что-то довольно очевидное, но я бы хотел, чтобы хоть раз обвинить в чем-то другом.:)
updateUser.js:
const updateUser = async (user) => {
console.log('user in updater:', user);
const updatedUser = await User.findOneAndUpdate(
{ _id: user._id },
{
$set: {
name: user.name,
email: user.email,
password: user.password,
ageRange: user.ageRange,
gender: user.gender,
accountCreatedAt: user.accountCreateAt,
meetingPlaces: user.meetingPlaces,
flags: user.flags,
tokens: user.tokens,
}
},
{ new: true },
(err, doc) => {
console.log(err, doc);
}
);
//placeholders until I get some kind of usable response from findOneAndUpdate
return {err: false, res: 'cat'};
};
вывод терминала:
console.log server/db/crud_Users/updateUser.js:8
user in updater: { _id: 5b1aa9a146b59048dd86dbc2,
name: 'test',
email: '24479981326297030000@test.com',
password: 'testtest',
ageRange: '1',
gender: 'Female',
accountCreatedAt: '2018-06-08T11:06:57-05:00',
meetingPlaces: [],
flags: [],
tokens: [],
homeLocations: [],
hostedEvents: [],
attendingEvents: [],
__v: 0 }
console.log server/db/crud_Users/updateUser.js:28
null null
console.log server/db/crud_Users/updateUser.js:32
updatedUser: null