Я использую mongoose
и express-graphql
вместе в проекте.Я хочу преобразовать документ в объект, используя метод .toObject()
, описанный здесь , а затем вернуть значение в GraphQL.
Схема GraphQL:
type User {
_id: ID,
// ...
}
Код:
const Me = function (params, req) {
if (!req.user) throw Error('Not logged in');
return req.user.toObject();
};
module.exports = Me;
Однако появляется следующая ошибка:
ID не может представлять значение: {_bsontype: "ObjectID", id: <Буфер 5b 9b cb 54 df d9 c5 1e 04 e4 eb 54>}
Я попытался вывести _id
на экран, используя console.log(req.user.toObject()._id)
,но он просто показывает строку идентификатора.По какой-то причине работает следующий код:
const Me = function (params, req) {
if (!req.user) throw Error('Not logged in');
return JSON.parse(JSON.stringify(req.user.toObject()));
};
module.exports = Me;
Я не уверен, что заставляет GraphQL читать поле _id
как нестроковое значение прямо из метода .toObject()
.Спасибо за помощь!