Seguí este tutorial de API y logré que todo funcionara excepto el método DELETE.
Este es el método de eliminación:
// Deleting one router.get('/:id' ,getOrder, async (req, res) => { try { await res.order.remove(); res.json({ message: 'Order Deleted' }) } catch (error) { res.status(500).json({ message: error.message }) } })
Función para encontrar ID:
async function getOrder(req, res, next) { let order try { order = await Order.findById(req.params.id) if (order == null) { return res.status(404).json({ message: 'cannot find Order' }) } } catch (error) { return res.status(500).json({ message: error.message }) } res.order = order next() }
Este es mi archivo server.js
require('dotenv').config(); const express = require('express'); const app = express(); const mongoose = require('mongoose'); let port = process.env.PORT || 3000; mongoose.connect( process.env.DATABASE_URL, { useNewUrlParser: true, useUnifiedTopology: true } ); const db = mongoose.connection; db.on("error", console.error.bind(console, "connection error: ")); db.once("open", function () { console.log("Connected to db successfully"); }); app.use(express.json()) const ordersRouter = require('./routes/orders') app.use('/orders', ordersRouter) app.listen(port , () => console.log('server started'))
Y esta es la respuesta que recibo después de la solicitud DELETE