Config is not defined": what is it?

I’m having an issue with connecting to MariaDB. I’m a beginner with node.js and I need some professional advice.

var sequelize = new _sequelize2.default(config.database, config.username, config.password, 
config);
                                        ^

ReferenceError: config is not defined
    at Object.<anonymous> (C:/Users/mpkw1/src/models/index.js:9:33)
    at Module._compile (module.js:569:30)
    at loader (C:\Users\mpkw1\AppData\Roaming\nvm\v8.1.2\node_modules\babel-cli\node_modules\babel-register\lib\node.js:144:5)
    at Object.require.extensions.(anonymous function) [as .js] (C:\Users\mpkw1\AppData\Roaming\nvm\v8.1.2\node_modules\babel-cli\node_modules\babel-register\lib\node.js:154:7)       
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:/Users/mpkw1/src/index.js:5:1)
    at Module._compile (module.js:569:30)
    at loader (C:\Users\mpkw1\AppData\Roaming\nvm\v8.1.2\node_modules\babel-cli\node_modules\babel-register\lib\node.js:144:5)

User.js in models folder:

module.exports = (sequelize, DataTypes) => {
    return sequelize.define('user', {
        user_id : { ... },
        id : { ... },
        password : { ... },
        nickname : { ... }
    });
};

sequelize.js in config folder:

{
  "development": {
    "username": "root",
    "password": null,
    "database": "database_development",
    "host": "127.0.0.1",
    "dialect": "mariadb",
    "operatorsAliases": false
  },
  "test": {
    "username": "root",
    "password": null,
    "database": "database_test",
    "host": "127.0.0.1",
    "dialect": "mariadb",
    "operatorsAliases": false
  },
  "production": {
    "username": "root",
    "password": null,
    "database": "database_production",
    "host": "127.0.0.1",
    "dialect": "mariadb",
    "operatorsAliases": false
  }
}

src/index.js:

const Koa = require('koa');
const app = new Koa();

//const sequelize = require('./models');
import { sequelize } from './models';
sequelize.sync().then(() => {
    console.log('✓ DB connection success.');
})
.catch(err => {
    console.error(err);
    console.log('✗ DB connection error. Please make sure DB is running.');
    process.exit();
});

app.listen(4000, () => {
    console.log('server is listening to port 4000');
});

I’m using the latest version of node modules.

I’m having an issue connecting to MariaDB and I’m a beginner with Node.js. I’m receiving the following error:

ReferenceError: config is not defined
    at Object.<anonymous> (C:/Users/mpkw1/src/models/index.js:9:33)
    at Module._compile (module.js:569:30)
    at loader (C:\Users\mpkw1\AppData\Roaming\nvm\v8.1.2\node_modules\babel-cli\node_modules\babel-register\lib\node.js:144:5)
    at Object.require.extensions.(anonymous function) [as .js] (C:\Users\mpkw1\AppData\Roaming\nvm\v8.1.2\node_modules\babel-cli\node_modules\babel-register\lib\node.js:154:7)       
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:/Users\mpkw1/src/index.js:5:1)
    at Module._compile (module.js:569:30)
    at loader (C:\Users\mpkw1\AppData\Roaming\nvm\v8.1.2\node_modules\babel-cli\node_modules\babel-register\lib\node.js:144:5)

I’m looking for some professional advice to help me resolve this issue.

The error is caused by the fact that the config variable is not defined in the file C:/Users/mpkw1/src/models/index.js. You need to import the configuration file in index.js and pass it as an argument to sequelize.

To fix the issue, update C:/Users/mpkw1/src/models/index.js to include the following line at the top:

const config = require('../config/sequelize.js')[process.env.NODE_ENV || 'development'];

And update the sequelize instantiation to the following:

var sequelize = new _sequelize2.default(config.database, config.username, config.password, config);

Make sure to also update src/index.js to import sequelize correctly:

const { sequelize } = require('./models');