【问题标题】:connect apollo server with mongodb mongoos将 apollo 服务器与 mongodb mongoose 连接
【发布时间】:2019-02-22 06:11:07
【问题描述】:

我正在尝试将 apollo-server 与 mlab 上的 mongodb 连接(我也尝试使用本地 mongo)。我可以很好地连接到数据库,尽管在使用 graphql 查询进行测试时没有返回任何内容。我只是不知道如何从数据库中实际获取数据。我正在使用最新的 apollo-server-express。

我已经从各种教程和文档中整理了这些内容,但找不到关于我的问题的明确答案。可能遗漏了一些非常明显的东西。

Server.js

import express from 'express';
import { ApolloServer, gql } from 'apollo-server-express';
import Mongoose from 'mongoose';

import { Post } from './models/Post';

const app = express();

Mongoose.Promise = global.Promise;

Mongoose.connect('mongodb://<username>:<pw>@ds151282.mlab.com:51282/groupin', { useNewUrlParser: true })
  .then(()=> console.log('DB connected'))
  .catch(error => console.log(error))

const typeDefs = gql`
  type Post {
    title: String
    description: String
    author: String
    url: String
  }
  type Query {
    allPosts: [Post]
  }
`;

const resolvers = {
  Query: {
    allPosts(parent, args) {
      return Post.find({})
    }
  }
};


const apollo = new ApolloServer({
  typeDefs, 
  resolvers,
  context: ({req}) => ({ Post })
});

apollo.applyMiddleware({ app })

app.listen(4000, () => {
  console.log(`???? Server ready at http://localhost:4000${apollo.graphqlPath}`);
});

Post.js

import Mongoose from 'mongoose';

const PostSchema = {
  title: String,
  description: String,
  author: String,
  url: String
};

const Post = Mongoose.model('Post', PostSchema);
export { Post };

【问题讨论】:

    标签: mongodb mongoose graphql apollo-server


    【解决方案1】:

    尝试使用猫鼬模式而不是普通对象

    Post.js

    import Mongoose from 'mongoose';
    
    const PostSchema = new Mongoose.Schema({
      title: String,
      description: String,
      author: String,
      url: String
    });
    
    const Post = Mongoose.model('Post', PostSchema);
    export { Post };
    

    【讨论】:

      猜你喜欢
      • 2020-06-13
      • 1970-01-01
      • 2020-05-05
      • 2021-03-29
      • 1970-01-01
      • 2020-11-02
      • 1970-01-01
      • 2021-03-03
      相关资源
      最近更新 更多