Javascript/React 学習中です。
index.jsxファイルのmapの行で下記エラーとなります。
「TypeError: pokemon.map is not a function」
ググって複数見てみましたが、初心者なためエラー原因が自分でわかりませんでした。
ご指摘または、確認すべき場所をアドバイス頂けますと幸いです。
index.jsxファイル
React
1const React = require('react') 2 3const myStyle = { 4color: '#ffffff', 5backgroundColor: '#000000', 6}; 7const cap = { 8 textTransform: 'capitalize', 9 color: 'silver', 10} 11 12class Index extends React.Component { 13 render(){ 14 const pokemon = this.props.Pokemon; 15 return ( 16 <div style={myStyle}> 17 <h1>See All The Pokemon!</h1> 18 <ul> 19 { 20 pokemon.map((Pokemon, i)=>{ 21 return( 22 <li style={cap}> 23 <a href={`/pokemon/${i}`}><font color="silver">{`${i}`} {pokemon.name}</font></a> 24 </li> 25 ) 26 }) 27 } 28 </ul> 29 </div> 30 ) 31 } 32} 33 34module.exports = Index;
server.jsファイル
JavaScript
1require('dotenv').config() 2 3const express = require('express'); 4const app = express(); 5const PORT = 3000; 6const Pokemon = require('./models/pokemon'); 7 8 9const mongoose = require('mongoose'); 10mongoose.connect(process.env.MONGO_URI, { 11 useNewUrlParser: true, 12 useUnifiedTopology: true, 13 useCreateIndex: true, 14 useFindAndModify: false 15}) 16mongoose.connection.once('open', () => { 17 console.log('connected to mongo') 18}) 19 20app.set('view engine', 'jsx'); 21app.engine('jsx', require('express-react-views').createEngine()) 22//追記 23app.use(express.urlencoded({ extended: true })) 24 25app.get('/', (req, res) => { 26 res.send('Welcome to the Pokemon App!') 27}) 28 29/* 30Indexにも追記 31*/ 32app.get('/pokemon', (req, res) => { 33 Pokemon.find({}, (err, foundPokemon)=>{ 34 if(err){ 35 res.status(404).send({ 36 msg: err.message 37 }) 38 } else { 39 res.render('Index', { 40 Pokemon: foundPokemon 41 }) 42 } 43 }) 44 45}) 46 47/* 48*/ 49app.get('/pokemon/new', (req, res) => { 50 res.render('New') 51}) 52 53app.get('/pokemon/:id', (req, res) => { 54 res.render('Show', { 55 pokemon: pokemon[req.params.id] 56 }); 57}) 58 59/* 60追記 61*/ 62app.post('/pokemon', (req, res) =>{ 63 Pokemon.create(req.body, (err, createdPokemon ) => { 64 if(err){ 65 res.status(404).send({ 66 msg: err.message 67 }) 68 } else { 69 console.log(createdPokemon); 70 res.redirect('/pokemon') 71 } 72}) 73}) 74 75app.listen(PORT, () => { 76 console.log('We in the building', PORT) 77})
pokemon.js ファイル
JavaScript
1const { Schema, model } = require('mongoose'); 2const pokemonSchema = new Schema({ 3 name: { type: String, required: true, unique: true }, 4 img: { type: String, required: true }, 5 6}); 7const Pokemon = model('Pokemon', pokemonSchema); 8module.exports = Pokemon;
回答1件
あなたの回答
tips
プレビュー