ReferenceError: module is not defined

30,743

Solution 1

You are mixing ES imports with CommonJS - at bottom of file you have module.exports = api; which is CJS terminology. The ES module equivalent is:

export default 

Solution 2

Check dotenv at package.json, be sure to npm install dotenv. https://www.npmjs.com/package/dotenv

Share:
30,743

Related videos on Youtube

Author by

ccurves

Updated on January 11, 2021

Comments

  • ccurves almost 2 years

    So i have been trying to run this web app and at first it showed

    (node:12960) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
    C:\Users\J\react-messenger\stream-chat-boilerplate-api\src\index.js:1
    import dotenv from 'dotenv'; ^^^^^^

    SyntaxError: Cannot use import statement outside a module

    And then i went to put set the type: module in the package.json but it gave me this error

    ReferenceError: module is not defined

    at file:///C:/Users/J/react-messenger/stream-chat-boilerplate-api/src/index.js:38:1
    

    Here is my code:

    import dotenv from 'dotenv';
    dotenv.config();
    import fs from 'fs';
    import path from 'path';
    import express from 'express';
    import bodyParser from 'body-parser';
    import cors from 'cors';
    import helmet from 'helmet';
    import compression from 'compression';
    const api = express();
    api.use(cors());
    api.use(compression());
    api.use(helmet());
    api.use(bodyParser.urlencoded({ extended: true }));
    api.use(bodyParser.json());
    api.listen(process.env.PORT, error => {
        if (error) {
            console.warn(error);
            process.exit(1);
        }
        // eslint-disable-next-line array-callback-return
        fs.readdirSync(path.join(__dirname, 'routes')).map(file => {
            require('./routes/' + file)(api);
        });
        console.info(
            `Running on port ${process.env.PORT} in ${
                process.env.NODE_ENV
            } mode. 🚀`
        );
    });
    module.exports = api;
    

    I dont know what am doing wrong

Related