Мой маршрут уничтожения возвращает ошибку, указанную выше, и я косился, пытаясь найти свою ошибку. Вы можете помочь? Обратите внимание, что все остальные маршруты CRUD работают.
//THE ROUTE
app.delete('/puffins/:id', (req, res) => {
Puffin.findByIdAndRemove(req.params.id, (err, found) => {
if (err) {
console.log(err);
} else {
console.log('FOUNDIT', found); //DOES NOT PRINT
res.redirect('/');
}
});
})
Маршрут вызывается из формы ниже.
<form action="/puffins/<%- puffin._id %>?_method= DELETE" method="POST">
<button>Delete</button>
</form>
Зависимости и их вызов ...
//DEPENDENCIES
const express = require('express');
const app = express();
const mongoose = require('mongoose');
const methodOverride = require('method-override');
const Puffin = require('./models/puffin');
//INVOCATION
app
.set('view engine', 'ejs')
.use(express.urlencoded({ extended: true }))
.use(express.static('public'))
.use(methodOverride('_method'))
Файлы проекта выглядят так
projectDirectory-->
app.js
modelsDirectory --> puffin.js
viewsDirectory -->
index.ejs
edit.ejs
new.ejs
Спасибо!
А вот ВСЕ точка входа, приложение. js
const express = require('express');
const app = express();
const mongoose = require('mongoose');
const methodOverride = require('method-override');
const Puffin = require('./models/puffin');
mongoose.connect('mongodb://localhost/deletePuffins', {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
});
app
.set('view engine', 'ejs')
.use(express.urlencoded({ extended: true }))
.use(express.static('public'))
.use(methodOverride('_method'))
.get('/', (req, res) => {
res.redirect('/puffins');
})
// index
.get('/puffins', (req, res) => {
Puffin.find({}, (err, puffins) => {
if (err) {
console.log(err);
} else {
res.render('index', { puffins: puffins });
}
});
})
// new
.get('/puffins/new', (req, res) => {
res.render('new');
})
// create
.post('/puffins', (req, res) => {
Puffin.create(req.body.puffin, (err, newPuffin) => {
if (err) {
console.log(err.message || err);
} else {
// console.log(newPuffin);
res.redirect('/');
}
});
})
// edit
.get('/puffins/:id/edit', (req, res) => {
Puffin.findById(req.params.id, (err, foundPuffin) => {
if (err) {
console.log(err);
} else {
res.render('edit', { puffin: foundPuffin });
}
});
})
// update
.put('/puffins/:id', (req, res) => {
Puffin.findByIdAndUpdate(req.params.id, req.body.puffin, (err, update) => {
if (err) {
console.log('ERROR', err.message || err);
} else {
// console.log('UPDATE', update);
res.redirect('/');
}
});
})
// destroy
.delete('/puffins/:id', (req, res) => {
Puffin.findByIdAndRemove(req.params.id, (err, found) => {
if (err) {
console.log(err);
} else {
console.log('FOUNDIT', found);
res.redirect('/');
}
});
})
.listen(3000);