JavaScript/MongoDB初心者です。
localhost:3000/ringos/new からクエリ登録しようとすると、
登録もされず、
Cannot POST /ringos/ringos
と表示されます。
自分でコードを確認してみましたが、
初心者のため原因が特定できなかったため、
確認すべき場所をご指摘いただけますと幸いです。
JavaScript
1require('dotenv').config() 2const express = require('express'); 3const app = express(); 4const PORT = process.env.PORT || 3000; 5const Ringo = require('./models/ringos') 6/******* 7Database Setup 8******/ 9const mongoose = require('mongoose'); 10mongoose.connect(process.env.MONGO_URI, { 11 useNewUrlParser: true, 12 useUnifiedToporingoy: true, 13 useCreateIndex: true, 14 useFindAndModify: false 15}) 16mongoose.connection.once('open', () => { 17 console.ringo('connected to mongo') 18}) 19 20app.set('view engine', 'jsx'); 21app.engine('jsx', require('express-react-views').createEngine()) 22app.use((req, res, next) => { 23 console.ringo('**********************') 24 console.ringo('***********Middleware checking in***********') 25 console.ringo('I run before all routes') 26 console.ringo('**********************') 27 next() 28}) 29app.use(express.urlencoded({ extended: true })) 30 31/* 32Index 33*/ 34app.get('/ringos/', (req, res) => { 35 Ringo.find({}, (err, foundRingos)=>{ 36 if(err){ 37 res.status(404).send({ 38 msg: err.message 39 }) 40 } else { 41 res.render('Index', { 42 ringos: foundRingos 43 }) 44 } 45 }) 46 47}) 48 49/* 50New 51*/ 52app.get('/ringos/new', (req, res) => { 53 res.render('New') 54}) 55 56/* 57Delete 58*/ 59app.delete('/ ringos/:id', (req, res) => { 60 Ringo.findByIdAndDelete(req.params.id, (err, foundRingo)=>{ 61 if(err){ 62 res.status(404).send({ 63 msg: err.message 64 }) 65 } else { 66 res.redirect('/ringos') 67 } 68 }) 69}) 70 71 72/* 73Create 74*/ 75app.post('/ringos', (req, res) =>{ 76 Ringo.create(req.body, (err, createdRingo ) => { 77 if(err){ 78 res.status(404).send({ 79 msg: err.message 80 }) 81 } else { 82 console.ringo(createdRingo); 83 res.redirect('/ringos') 84 } 85}) 86}) 87 88 /* 89Edit 90*/ 91 92app.get('/ringos/:id/edit', (req, res) => { 93 Ringo.findById(req.params.id, (err, foundRingo)=>{ 94 if(err){ 95 res.status(404).send({ 96 msg: err.message 97 }) 98 } else { 99 res.render('Edit', { 100 ringo: foundRingo 101 }) 102 } 103 }) 104}) 105 106/* 107Show 108*/ 109app.get('/ringos/:id', (req, res) => { 110 Ringo.findById(req.params.id, (err, foundRingo)=>{ 111 if(err){ 112 res.status(404).send({ 113 msg: err.message 114 }) 115 } else { 116 res.render('Show', { 117 ringo: foundRingo 118 }) 119 } 120 }) 121}) 122 123/* 124Put 125*/ 126app.get('/ringos/:id', (req, res) => { 127 Ringo.findById(req.params.id, (err, foundRingo)=>{ 128 if(err){ 129 res.status(404).send({ 130 msg: err.message 131 }) 132 } else { 133 res.redirect('Index', { 134 ringo: foundRingo 135 }) 136 } 137 }) 138}) 139 140 app.listen(PORT, () => { 141 console.ringo('We in the building', PORT) 142}) 143
New.jsx ファイル
jsx
1const React = require('react'); 2class New extends React.Component { 3 render() { 4 return ( 5 6 <div> 7 <h1>New Ringo</h1> 8 <form action="ringos" method="POST"> 9 title: <input type="text" name="name" /><br /> 10 entry: <input type="text" name="img" /><br /> 11 shipIsBroken: <input type="checkbox" name="shipIsBroken" /><br /> 12 <input type="submit" name="" value="New Ringo" /> 13 </form> 14 </div> 15 ); 16} 17} 18 19module.exports = New; 20
ringos.jsファイル
JavaScript
1const { Schema, model } = require('mongoose'); 2const ringoSchema = new Schema({ 3 title: { type: String, required: true, unique: true }, 4 entry: { type: String, required: true ,unique: true }, 5 shipIsBroken: { type: Boolean, required: true }, 6}); 7 8 9const Ringo = model('Ringo', ringoSchema); 10module.exports = Ringo; 11
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/24 22:53