so i'm reviewing and practicing making rest api with node mongoose and express. I'm having problem making the post part of the api as I'm getting an error that I'm not sure how to fix. I'm kinda sure how to do the put and delete part. But if someone can show what that will look like. It will be great.
mongoose.connect('mongodb://localhost:27017/pokemon');
var pokemonSchema = {
pokeid: Number,
name:String,
type:String,
weight:String,
height: String,
date: { type: Date, default: Date.now },
summary: String
}
var Pokemon = mongoose.model('Pokemon', pokemonSchema);
var app = express();
app.use(cors());
app.get('/api', function(req, res) {
res.json({ message: 'hooray! welcome to our api!' });
});
//gets the all the pokemon
app.get('/pokemon', function(req, res) {
Pokemon.find(function(err, doc) {
res.send(doc);
});
});
//gets a specific pokemon
app.get('/pokemon/:id', function(req, res) {
Pokemon.findOne({ _id: req.params.id},function (err, doc) {
res.send(doc);
})
})
//create a new pokemon
app.post('/pokemon', function(req, res) {
var pokemon = new Pokemon();
pokemon.pokeid = req.body.pokeid;
pokemon.name = req.body.name;
pokemon.type = req.body.type;
pokemon.weight = req.body.weight;
pokemon.height = req.body.height;
pokemon.summary = req.body.summary;
//save pokemon
pokemon.save(function(err) {
if (err)
res.send(err);
res.json({ message: 'pokemon created'});
});
})
//update the pokemon
app.put('/pokemon/:id', function(req, res) {
})
app.delete('/pokemon/:id', function(req, res) {
});
the error
TypeError: Cannot read property 'pokeid' of undefined
at /home/g62/pokemonsite/server/server.js:54:30
at Layer.handle [as handle_request] (/home/g62/pokemonsite/server/node_modules/express/lib/router/layer.js:95:5)
at next (/home/g62/pokemonsite/server/node_modules/express/lib/router/route.js:131:13)
at Route.dispatch (/home/g62/pokemonsite/server/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/g62/pokemonsite/server/node_modules/express/lib/router/layer.js:95:5)
at /home/g62/pokemonsite/server/node_modules/express/lib/router/index.js:277:22
at Function.process_params (/home/g62/pokemonsite/server/node_modules/express/lib/router/index.js:330:12)
at next (/home/g62/pokemonsite/server/node_modules/express/lib/router/index.js:271:10)
at cors (/home/g62/pokemonsite/server/node_modules/cors/lib/index.js:179:7)
at /home/g62/pokemonsite/server/node_modules/cors/lib/index.js:229:17
at originCallback (/home/g62/pokemonsite/server/node_modules/cors/lib/index.js:218:15)
at /home/g62/pokemonsite/server/node_modules/cors/lib/index.js:223:13
at optionsCallback (/home/g62/pokemonsite/server/node_modules/cors/lib/index.js:204:9)
at corsMiddleware (/home/g62/pokemonsite/server/node_modules/cors/lib/index.js:209:7)
at Layer.handle [as handle_request] (/home/g62/pokemonsite/server/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/g62/pokemonsite/server/node_modules/express/lib/router/index.js:312:13)
I'm been trying to fix it but not sure how.
using postman for this
JavaScript questions and answers, JavaScript questions pdf, JavaScript question bank, JavaScript questions and answers pdf, mcq on JavaScript pdf, JavaScript questions and solutions, JavaScript mcq Test , Interview JavaScript questions, JavaScript Questions for Interview, JavaScript MCQ (Multiple Choice Questions)