我在阿波罗服务器和grapghql上有错误

发布于 2025-02-09 23:51:08 字数 2723 浏览 2 评论 0原文

这是错误的错误

node_modules \ apollo-server-core \ dist \ apolloserver.js:358 投掷错误('Apollo服务器需要现有模式,模块或Typedefs');

这是我的代码:

users.typedefs.js

最重要的是我从“ apollo-server”中有“ import {gql}”;

export default gql `"



    type User {
        id: String!
        firstName: String!
        lastName: String
        username: String!
        email: String!
        createdAt: String!
        updatedAt: String!
    }

    type Mutation {
        createAccount(
            firstName: String!
            lastName: String
            username: String!
            email: String!
            password: String!
        ): User
    }
    
    type Query {
        seeProfile(username:String): User
    }
`;

这是我的users.mutations.js,

我在上面我有:

import { PrismaClient } from "@prisma/client";
import client from "../client";"

这是主要代码:

    export default {
    Mutation: {
        createAccount: async (
            _, {
        firstName,
        lastName,
        username,
        email,
        password
            }
        ) => {
            //check if username or email are already on DB.
            const existingUser = await client.user.findFirst({
                where: {
                    OR: [
                        {
                            username,
                        },
                        {
                         email,   
                        }
                    ],
                },
            });
            console.log(existingUser);
            // hash password
            // save and return the user
        },
    } ,
};

users.queries.queries。 js是导出默认值,

这是我的schema.js和client.js,

import { mergeTypeDefs, mergeResolvers, } from "@graphql-tools/merge";
import { loadFilesSync } from "@graphql-tools/load-files";
import { makeExecutableSchema } from "@graphql-tools/schema";

const loadedTypes = loadFilesSync(`${__dirname}/**/*.typeDefs.js`);
const loadedResolvers = loadFilesSync(`${__dirname}/**/*.{queries,mutations}.js`);



const typeDefs = mergeTypeDefs(loadedTypes);
const resolvers = mergeResolvers(loadedResolvers);

const schema = makeExecutableSchema({typeDefs, resolvers});

export default schema;

import { PrismaClient } from "@prisma/client";

const client = new PrismaClient ();

export default client;

这也是我的server.js

require ("dotenv").config();

import { ApolloServer, gql } from "apollo-server";
import {schema} from "./schema";

const server = new ApolloServer({
  schema,
});

const PORT = process.env.PORT

server.listen(PORT).then(() => {
  console.log(`
              

This is the error am getting

node_modules\apollo-server-core\dist\ApolloServer.js:358
throw Error('Apollo Server requires either an existing schema, modules or typeDefs');

Here is my code:

users.typeDefs.js

On top I have "import { gql } from "apollo-server";

export default gql `"



    type User {
        id: String!
        firstName: String!
        lastName: String
        username: String!
        email: String!
        createdAt: String!
        updatedAt: String!
    }

    type Mutation {
        createAccount(
            firstName: String!
            lastName: String
            username: String!
            email: String!
            password: String!
        ): User
    }
    
    type Query {
        seeProfile(username:String): User
    }
`;

Here is my users.mutations.js

On top I have:

import { PrismaClient } from "@prisma/client";
import client from "../client";"

Here is the main code:

    export default {
    Mutation: {
        createAccount: async (
            _, {
        firstName,
        lastName,
        username,
        email,
        password
            }
        ) => {
            //check if username or email are already on DB.
            const existingUser = await client.user.findFirst({
                where: {
                    OR: [
                        {
                            username,
                        },
                        {
                         email,   
                        }
                    ],
                },
            });
            console.log(existingUser);
            // hash password
            // save and return the user
        },
    } ,
};

The users.queries.js is export default,

Here is my schema.js and client.js

import { mergeTypeDefs, mergeResolvers, } from "@graphql-tools/merge";
import { loadFilesSync } from "@graphql-tools/load-files";
import { makeExecutableSchema } from "@graphql-tools/schema";

const loadedTypes = loadFilesSync(`${__dirname}/**/*.typeDefs.js`);
const loadedResolvers = loadFilesSync(`${__dirname}/**/*.{queries,mutations}.js`);



const typeDefs = mergeTypeDefs(loadedTypes);
const resolvers = mergeResolvers(loadedResolvers);

const schema = makeExecutableSchema({typeDefs, resolvers});

export default schema;

import { PrismaClient } from "@prisma/client";

const client = new PrismaClient ();

export default client;

Here is also my server.js

require ("dotenv").config();

import { ApolloServer, gql } from "apollo-server";
import {schema} from "./schema";

const server = new ApolloServer({
  schema,
});

const PORT = process.env.PORT

server.listen(PORT).then(() => {
  console.log(`???? Server ready at http://localhost:${PORT} ✅ `);
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文