Я строю сервер GraphQL и получаю странное поведение с одним из моих преобразователей. Когда я запускаю мутацию в первый раз, она возвращает ноль, но когда я использую логирование, консоль ясно показывает, что объект был возвращен Mongoose, прежде чем я попытаюсь вернуть его.
Резольвер:
setView(error, { name, author, data }) {
if (error) return console.error(error);
console.log(`Creating new view named: ${name}`);
let newView = new View({ name: name, author: author, data: data });
newView.save();
console.log("View created");
console.log(View.findOne({ name: name }));
return View.findOne({ name: name });
}
Журнал консоли:
Создание нового представления с именем: testView5
Вид создан
model.Query {_mongooseOptions: Object, mongooseCollection:
NativeCollection, model:, схема: Schema, op: "findOne",…}
Создание нового представления с именем: testView5
Вид создан
model.Query {_mongooseOptions: Object, mongooseCollection:
NativeCollection, model:, схема: Schema, op: "findOne",…}
Мутация:
mutation {
setView(
name: "testView7",
author: "Bob",
data: [
"First Column",
"Second Column",
"Third Column"
]) {
name
}
}
Первоначальный доход:
{
"data": {
"setView": null
}
}
Последующее возвращение (снова та же мутация):
{
"data": {
"setView": {
"name": "testView7"
}
}
}
В настоящее время мне интересно, связано ли это с тем, как я возвращаюсь с помощью findOne, но я не могу понять, что это может быть, если это сработает во второй раз.