仅从猫鼬模型创建GraphQl Server
#node #graphql #mongodb #mongoose

简介

Mongoose是MongoDB和Node.js的对象数据建模(ODM)库,是Nodejs开发人员熟悉的最常见库之一。 Mongoose已被广泛用于REST应用程序,GraphQL的到来是API的一种查询语言,可以准确地获得您需要的内容,一个简单的接口似乎都丢失了。

要填补此空白并自动从Mongoose模型生成GraphQl Server,并为所有模型提供了对深嵌套种群的支持的基本CRUD操作,我创建了此库mongoose-graphql-server

入门

开始使用此库,并在Mongoose模型上使用GraphQl生成CRUD。

注意:假设MongoDB是在本地安装的,或者需要相应地更改连接字符串,以使用免费的Cloud Mongdb数据库Checkout MongoDB Atlas

进行测试。

为项目制作目录。

在该目录中启动了一个新的Nodejs使用NPM或YARN

使用NPM

$ npm init -y

用纱线

$ yarn init -y

安装所需的依赖项

$ npm install mongoose mongoose-graphql-server --save


$ yarn add mongoose mongoose-graphql-server

为服务器代码创建文件index.js

const mongoose = require('mongoose');
const {
  generateSchema,
  createGraphQLServer,
} = require('mongoose-graphql-server');
const PORT = process.env.port || 3000;

mongoose.connect('mongodb://localhost/test');
const db = mongoose.connection;

const init = async () => {
  // Register models

  const userModel = mongoose.model('user', {name: String, age: Number});
  const catModel = mongoose.model('cat', {name: String});
  // Build the schema

  const schema = generateSchema(mongoose);

  // Create the graphQL server

  const app = await createGraphQLServer(schema);

  // Start the server

  app.listen(PORT, () => {
    console.log(
      `??? The server is running at http://localhost:${PORT}/`,
      `The GraphQL explorer is running at http://localhost:${PORT}/graphql`
    );
  });
};

db.once('open', init);

使用
启动服务器

$ node index.js

如果没有错误,请前往GraphQL endpoint开始使用GraphQl Explorer探索。

该屏幕应在成功的服务器启动中可见
Image description

这只是一个基本的介绍,可以在mongoose-graphql-serverGitHub repository

上找到更多的文档和示例

任何类型的反馈都非常感谢,因为这是我的第一个NPM软件包,并且由于Hacktoberfest在美国对该项目的贡献也受到欢迎。