【发布时间】:2018-01-28 17:07:48
【问题描述】:
这是我的架构:
type User {
_id: ID!
username: String
email: String!
firstName: String
lastName: String
avatar: String
createdAt: Date!
updatedAt: Date!
}
type Tweet {
_id: ID!
text: String!
user: User!
favoriteCount: Int!
createdAt: Date!
updatedAt: Date!
}
这是我的Tweet 模型:
import mongoose, { Schema } from 'mongoose';
const TweetSchema = new Schema({
text: {
type: String,
minLength: [5, 'Your tweet is too short.'],
maxLength: [144, 'Your tweet is too long.']
},
user: {
type: Schema.Types.ObjectId,
ref: 'User'
},
favoriteCount: {
type: Number,
default: 0
}
}, { timestamps: true });
export default mongoose.model('Tweet', TweetSchema);
上述 GraphQL 架构由 express 提供,如下所示:
import { graphqlExpress } from 'apollo-server-express';
import { makeExecutableSchema } from 'graphql-tools';
import typeDefs from '../graphql/schema';
import resolvers from '../graphql/resolvers';
const schema = makeExecutableSchema({
typeDefs,
resolvers
});
const app = express();
app.use(
'/graphql',
graphqlExpress(req => ({
schema
}))
);
我使用下面的代码来模拟一些用户并使用这样的 faker 发推文:
https://pastebin.com/raw/kJ9m8KjR
当整个事情运行时,我可以看到 mongodb 填充了与这样的用户链接的虚拟推文:
但是当我通过 GraphiQL 查询时,用户信息没有通过:
有什么想法吗?
【问题讨论】:
-
你能分享你的解析器代码吗?
-
嗨。这是推文解析器:pastebin.com/raw/tGSixdMe