Search code examples
node.jsnode-modules

How to export module, configured in the other file in NodeJS?


This is my code in server.js I want to split into 2 files, and put configuration part in a separated file:

let mongoose = require("mongoose");
mongoose.connect(process.env.MONGO_URI, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
}); 

const userSchema = new mongoose.Schema({
  username: {
    type: String,
    unique: true,
    required: true
  },
  password: {
    type: String,
    required: true
  }
});
const User = mongoose.model("User", userSchema);

After that I have two files. mongo.js

let mongoose = require("mongoose");

mongoose.connect(process.env.MONGO_URI, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

module.export = mongoose;

and in server.js there is now:

let mongoose = require("./mongo");

const userSchema = new mongoose.Schema({
  username: {
    type: String,
    unique: true,
    required: true
  },
  password: {
    type: String,
    required: true
  }
});
const User = mongoose.model("User", userSchema);

But now I'm getting an error. It seems that variable assigned to imported module isn't interpreted as mongoose module anymore:

const userSchema = new mongoose.Schema({
                   ^
TypeError: mongoose.Schema is not a constructor

What I did wrong?


Solution

  • In mongo.js change below line.

       ...
    
    
    module.exports = mongoose;