What’s happening:
I’m trying to do the “Create and Save a Record of a Model” challenge in the MongoDB and Mongoose challenges (APIs and Microservices section) and I have an error saying:
throw er; // Unhandled 'error' event
^
TypeError: Cannot read property 'remove' of null
at /home/runner/boilerplate-mongomongoose/server.js:104:12
at /home/runner/boilerplate-mongomongoose/node_modules/mongoose/lib/model.js:4866:16
at /home/runner/boilerplate-mongomongoose/node_modules/mongoose/lib/model.js:4866:16
at /home/runner/boilerplate-mongomongoose/node_modules/mongoose/lib/helpers/promiseOrCallback.js:24:16
at /home/runner/boilerplate-mongomongoose/node_modules/mongoose/lib/model.js:4889:21
at /home/runner/boilerplate-mongomongoose/node_modules/mongoose/lib/query.js:4399:11
at /home/runner/boilerplate-mongomongoose/node_modules/kareem/index.js:136:16
at processTicksAndRejections (internal/process/task_queues.js:79:11)
Emitted 'error' event on Function instance at:
at /home/runner/boilerplate-mongomongoose/node_modules/mongoose/lib/model.js:4868:13
at /home/runner/boilerplate-mongomongoose/node_modules/mongoose/lib/helpers/promiseOrCallback.js:24:16
[... lines matching original stack trace ...]
at processTicksAndRejections (internal/process/task_queues.js:79:11)
My code so far (all of myApp.js)
require("dotenv").config();
const mongoose = require("mongoose");
mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true });
const Schema = mongoose.Schema;
const personSchema = new Schema({
name: {type: String, required: true},
age: Number,
favoriteFoods: [String]
});
const Person = mongoose.model("Person", personSchema);
const createAndSavePerson = (done) => {
const person = new Person({
name: "Osman Zakir",
age: 21,
favoriteFoods: [
"Burgers",
"Pizza",
"Pasta",
"Meat and Chicken Curries"
]
});
person.save((err, person) => {
if (err) {
console.log(err);
}
console.log(`${person.name} saved to database`);
});
done(null, person);
};
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;
Here’s the Repl.it link.
My browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.74
.
Challenge: Create and Save a Record of a Model
Link to the challenge:
I need some info on how to use done
and whether or not I’m creating and saving the document correctly. Thanks in advance for any help.