Setting up database connection
npm install mongoose --save
First let import the dependency;
const mongoose = require("mongoose");
Then let’s store the path of the database in a variable. The path should look like the following, with and being replaced with a user you have created for the database.
const dbPath = "mongodb://<dbuser>:<dbpassword>@ds250607.mlab.com:38485/test-db";
connect to the database.
mongoose.connect(dbPath, {
useNewUrlParser: true,
});
module.exports = mongoose;
Once the application is started, it would be better if there was an indicator showing whether the application successfully connected to the database or not. So let’s add some more code to fix that.
const db = mongoose.connection;
db.on("error", () => {
console.log("> error occurred from the database");
});
db.once("open", () => {
console.log("> successfully opened the database");
});
In the end the database.js should look like this.
// database.js
const mongoose = require("mongoose");
const dbPath = "mongodb://<dbuser>:<dbpassword>@ds250607.mlab.com:38485/test-db";
mongoose.connect(dbPath, {
useNewUrlParser: true,
});
const db = mongoose.connection;
db.on("error", () => {
console.log("> error occurred from the database");
});
db.once("open", () => {
console.log("> successfully opened the database");
});
module.exports = mongoose;
Setting up models/schema
// models/userModel.js
const mongoose = require("../database");
const schema = {
name: { type: mongoose.SchemaTypes.String, required: true },
email: { type: mongoose.SchemaTypes.String, required: true },
password: {
type: mongoose.SchemaTypes.String,
required: true,
select: false
}
};
const collectionName = "user"; // Name of the collection of documents
const userSchema = mongoose.Schema(schema);
const User = mongoose.model(collectionName, userSchema);
module.exports = User;
// Create user
User.create({
name: name,
email: email,
password: password
});
// Find user by email
User.findOne({
email: email
});
// Find user by email with the password field included
User.findOne({
email: email
}).select("+password");
Top comments (1)
What are the benefits of using Mongoose in general?