CRUD MongoDB - Node - Js
CRUD MongoDB - Node - Js
Realizaremos las operaciones de leer, crear, editar y eliminar documentos utilizando MongoDB y
Express.
Leer
En la sección anterior conocimos como conectarnos a mongoDB y leer documentos, por ende
utilizaremos el mismo proyecto, si gustas lo puedes revisar aquí:
bodyParser
Tenemos que instalar para utilizar x-www-form-urlencoded
https://www.npmjs.com/package/body-parser
npm i body-parser
https://www.npmjs.com/package/body-parser#expressconnect-top-level-generic
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
Crear
Ruta
Formulario
<div class="container">
<input
type="text"
placeholder="Ingrese Nombre"
class="form-control my-2"
name="nombre"
>
<input
type="text"
placeholder="Ingrese Descripción"
class="form-control my-2"
name="descripcion"
>
<button
type="submit"
class="btn btn-dark btn-block"
>
Agregar
</button>
</form>
</div>
POST
<tr>
<th scope="row"><%= mascota.id %></th>
<td><%= mascota.nombre %> </td>
<td><%= mascota.descripcion %></td>
<td>
<a
class="btn btn-warning btn-sm"
href="mascotas/<%= mascota.id %>"
>
Editar
</a>
</td>
</tr>
<div class="container">
<h1>Detalle Mascota</h1>
</div>
Delete documento
<button
class="btn btn-danger btn-sm"
data-id="<%= mascota.id %>"
>
Eliminar
</button>
<script>
// onclick vs addEventListener
// https://stackoverflow.com/questions/6348494/addeventlistener-vs-onclick#:~:text=Essen
</script>
// https://stackoverflow.com/questions/27202075/expressjs-res-redirect-not-worki
// res.redirect('/mascotas')
if (!mascotaDB) {
res.json({
estado: false,
mensaje: 'No se puede eliminar'
})
} else {
res.json({
estado: true,
mensaje: 'eliminado!'
})
}
} catch (error) {
console.log(error)
}
})
Editar documento
Detalle.ejs
if(res.estado){
window.location.href = '/mascotas'
}else{
console.log(res)
}
})
console.log(id)
console.log('body', body)
try {
const mascotaDB = await Mascota.findByIdAndUpdate(
id, body, { useFindAndModify: false }
)
console.log(mascotaDB)
res.json({
estado: true,
mensaje: 'Mascota editada'
})
} catch (error) {
console.log(error)
res.json({
estado: false,
mensaje: 'Mascota falla'
})
}
})