だから私はノードmongooseとexpressで休憩APIを作ることを見直して練習している。私は問題を解決する方法がわからないというエラーが出ているので、APIのポスト部分を作成しています。私はちょっと置くと削除の部分を行う方法を確かめている。しかし、誰かがそれがどのように見えるかを示すことができれば。それは素晴らしいでしょう。post、put、deleteにmongooseとnode.jsを使ってrestapiを書く
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) {
});
エラー
TypeError: Cannot read property 'pokeid' of undefined
<br> at /home/g62/pokemonsite/server/server.js:54:30
<br> at Layer.handle [as handle_request] (/home/g62/pokemonsite/server/node_modules/express/lib/router/layer.js:95:5)
<br> at next (/home/g62/pokemonsite/server/node_modules/express/lib/router/route.js:131:13)
<br> at Route.dispatch (/home/g62/pokemonsite/server/node_modules/express/lib/router/route.js:112:3)
<br> at Layer.handle [as handle_request] (/home/g62/pokemonsite/server/node_modules/express/lib/router/layer.js:95:5)
<br> at /home/g62/pokemonsite/server/node_modules/express/lib/router/index.js:277:22
<br> at Function.process_params (/home/g62/pokemonsite/server/node_modules/express/lib/router/index.js:330:12)
<br> at next (/home/g62/pokemonsite/server/node_modules/express/lib/router/index.js:271:10)
<br> at cors (/home/g62/pokemonsite/server/node_modules/cors/lib/index.js:179:7)
<br> at /home/g62/pokemonsite/server/node_modules/cors/lib/index.js:229:17
<br> at originCallback (/home/g62/pokemonsite/server/node_modules/cors/lib/index.js:218:15)
<br> at /home/g62/pokemonsite/server/node_modules/cors/lib/index.js:223:13
<br> at optionsCallback (/home/g62/pokemonsite/server/node_modules/cors/lib/index.js:204:9)
<br> at corsMiddleware (/home/g62/pokemonsite/server/node_modules/cors/lib/index.js:209:7)
<br> at Layer.handle [as handle_request] (/home/g62/pokemonsite/server/node_modules/express/lib/router/layer.js:95:5)
<br> at trim_prefix (/home/g62/pokemonsite/server/node_modules/express/lib/router/index.js:312:13)
私はそれを修正しようとしているが、方法がわからないされています。この
? – abdulbarik
私はこのチュートリアルに従っています。https://scotch.io/tutorials/build-a-restful-api-using-node-and-express-4#want-more-meansetting-up-a-mean-stack-single -page-applicationbuild-a-restful-api-using-node-and-express-4using-means-a-mean-stack-applicationは、トークン付きのノードを認証します。 req.bodyはスキーマと一致するはずです。 – user3296193
コンソールを追加し、 'req.body'の値を確認してください。 '/ pokemon'にどうやってリクエストしていますか? – Shrabanee