MongoDB and Mongoose - Create and Save a Record of a Model

Tell us what’s happening:

require('dotenv').config();
const mongoose = require("mongoose");

const dotenv = require('dotenv');
dotenv.config(); // Load the environment variables from .env

const mongoURI = process.env.MONGO_URI;

mongoose.connect(mongoURI, { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => {
    console.log('Connected to MongoDB Atlas!');
    // Your other code goes here
  })
  .catch((err) => {
    console.error('Error connecting to MongoDB Atlas:', err.message);
  });

  var Schema = mongoose.Schema;

let personSchema = new Schema({
  name: {type: String, required: true}, 
  age: Number,
  favoriteFoods: [String]
});

var Person = mongoose.model('Person', personSchema);

let joe = new Person ({name : 'joe', age: 30, favoriteFoods: ['Pizza']})

joe.save((error, data) => {
if(error) {
  console.log(error)
} else {
 return done(null, data)
}
})

const createAndSavePerson = (done) => {
  done(null /*, data*/);
};

const createManyPeople = (arrayOfPeople, done) => {
  done(null /*, data*/);
};

const findPeopleByName = (personName, done) => {
  done(null /*, data*/);
};

const findOneByFood = (food, done) => {
  done(null /*, data*/);
};

const findPersonById = (personId, done) => {
  done(null /*, data*/);
};

const findEditThenSave = (personId, done) => {
  const foodToAdd = "hamburger";

  done(null /*, data*/);
};

const findAndUpdate = (personName, done) => {
  const ageToSet = 20;

  done(null /*, data*/);
};

const removeById = (personId, done) => {
  done(null /*, data*/);
};

const removeManyPeople = (done) => {
  const nameToRemove = "Mary";

  done(null /*, data*/);
};

const queryChain = (done) => {
  const foodToSearch = "burrito";

  done(null /*, data*/);
};

/** **Well Done !!**
/* You completed these challenges, let's go celebrate !
 */

//----- **DO NOT EDIT BELOW THIS LINE** ----------------------------------

exports.PersonModel = Person;
exports.createAndSavePerson = createAndSavePerson;
exports.findPeopleByName = findPeopleByName;
exports.findOneByFood = findOneByFood;
exports.findPersonById = findPersonById;
exports.findEditThenSave = findEditThenSave;
exports.findAndUpdate = findAndUpdate;
exports.createManyPeople = createManyPeople;
exports.removeById = removeById;
exports.removeManyPeople = removeManyPeople;
exports.queryChain = queryChain;

Returns the following error on server start:

Your app is listening on port 3000
Connected to MongoDB Atlas!
events.js:292
throw er; // Unhandled ‘error’ event
^

ReferenceError: done is not defined

Your project link(s)

solution:

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36

Challenge: MongoDB and Mongoose - Create and Save a Record of a Model

Link to the challenge:

Apologies, didn’t distinguish the error clearly in my post. I get the following error:

Returns the following error on server start:

Your app is listening on port 3000
Connected to MongoDB Atlas!
events.js:292
throw er; // Unhandled ‘error’ event
^

ReferenceError: done is not defined

Your code should be inside the predefined functions. That is how your code gets access to the done callback function.

Within the createAndSavePerson function, create a document instance using the Person model constructor you built before.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.