admin管理员组

文章数量:1406937

I'm trying to debug a simple error in NodeJs. Error: Cannot find module './schema/schema'. I tried to create a dummy file with a string and trying to require in my project root and the same error showed up. I tried to delete the folder and the file about 3x and the error persist. Here is my code:

const express = require('express');
const expressGraphQL = require('express-graphql').graphqlHTTP;

const schema = require('./schema/schema');

const app = express();

app.use('/graphql', expressGraphQL({
    schema: schema,
    graphiql: true
}));

app.listen(4000, () => {
    console.log('Listening');
});

My schema file

const graphql = require('axios');
const axios = require('axios');

const {
    GraphQLObjectType,
    GraphQLString,
    GraphQLInt,
    GraphQLSchema,
} = graphql

const CompanyType = new GraphQLObjectType({
    name: 'Company',
    fields: {
        id: { type: GraphQLString },
        name: { type: GraphQLString },
        description: { type: GraphQLString }
    }
});

const UserType = new GraphQLObjectType({
    name: 'User',
    fields: {
        id: { type: GraphQLString},
        firstName: { type: GraphQLString },
        age: { type: GraphQLInt },
        pany: {
            type: CompanyType,
            resolve(parentValue, args) {
                axios.get(`http://localhost:3000/panies/${parentValuepanyId}`).then(
                    (response) => response.data
                );
            }
        }
    }
});

const RootQuery = new GraphQLObjectType({
    name: 'RootQueryType',
    fields: {
        user: {
            type: UserType,
            args: { id: { type: GraphQLString } },
            resolve(parentValue, args) {
                return axios.get(`http://localhost:3000/users/${args.id}`).then(
                    (response) => response.data
                );
            }
        },
        pany: {
            type: CompanyType,
            args: { id: { type: GraphQLString } },
            resolve(parentValue, args) {
                return axios.get(`https://localhost:3000/panies/${args.id}`).then(
                    (response) => response.data
                );
            }
        }
    }
});

module.exports = new GraphQLSchema({
    query: RootQuery
});

How my project is organised:

I tried to clone this project in another machine and the error persist. Does anyone have a clue about this? There are no typos, no spaces in the file, also I tried to delete node modules and run yarn and no success.

I'm trying to debug a simple error in NodeJs. Error: Cannot find module './schema/schema'. I tried to create a dummy file with a string and trying to require in my project root and the same error showed up. I tried to delete the folder and the file about 3x and the error persist. Here is my code:

const express = require('express');
const expressGraphQL = require('express-graphql').graphqlHTTP;

const schema = require('./schema/schema');

const app = express();

app.use('/graphql', expressGraphQL({
    schema: schema,
    graphiql: true
}));

app.listen(4000, () => {
    console.log('Listening');
});

My schema file

const graphql = require('axios');
const axios = require('axios');

const {
    GraphQLObjectType,
    GraphQLString,
    GraphQLInt,
    GraphQLSchema,
} = graphql

const CompanyType = new GraphQLObjectType({
    name: 'Company',
    fields: {
        id: { type: GraphQLString },
        name: { type: GraphQLString },
        description: { type: GraphQLString }
    }
});

const UserType = new GraphQLObjectType({
    name: 'User',
    fields: {
        id: { type: GraphQLString},
        firstName: { type: GraphQLString },
        age: { type: GraphQLInt },
        pany: {
            type: CompanyType,
            resolve(parentValue, args) {
                axios.get(`http://localhost:3000/panies/${parentValue.panyId}`).then(
                    (response) => response.data
                );
            }
        }
    }
});

const RootQuery = new GraphQLObjectType({
    name: 'RootQueryType',
    fields: {
        user: {
            type: UserType,
            args: { id: { type: GraphQLString } },
            resolve(parentValue, args) {
                return axios.get(`http://localhost:3000/users/${args.id}`).then(
                    (response) => response.data
                );
            }
        },
        pany: {
            type: CompanyType,
            args: { id: { type: GraphQLString } },
            resolve(parentValue, args) {
                return axios.get(`https://localhost:3000/panies/${args.id}`).then(
                    (response) => response.data
                );
            }
        }
    }
});

module.exports = new GraphQLSchema({
    query: RootQuery
});

How my project is organised:

I tried to clone this project in another machine and the error persist. Does anyone have a clue about this? There are no typos, no spaces in the file, also I tried to delete node modules and run yarn and no success.

Share Improve this question asked Jan 10, 2022 at 14:36 Gabriel SavianGabriel Savian 2243 silver badges14 bronze badges 1
  • Both answers are correct. I generated the tsconfig.json and I had to use the mand ts-node server.ts. I'm new to Ts in Node, I always used with JS.Plus I had to change the schema.ts to export default new GraphQLSchema – Gabriel Savian Commented Jan 10, 2022 at 15:25
Add a ment  | 

2 Answers 2

Reset to default 4

Your files have a .ts extension.

It can't find the file because it doesn't have a .js or .cjs file extension.

If you're using TypeScript, then use:

  • import/export and not require/modules.exports and
  • a typescript piler

If you're not using TypeScript then use a .js file extension.

The correct syntax is:

import sampleModule = require('modulename');

or

import * as sampleModule from 'modulename';

Then pile your TypeScript with --module monjs.

本文标签: javascriptNodeJs Cannot Find Module Path and name are correctStack Overflow