Elabore sus respuestas a las siguientes preguntas:
Evalúa la implementación del endpoint que crea un nuevo, o elimina un, documento en Firestore. ¿Qué validaciones sugerirías para mejorar la calidad del código?
exports.createItem = async (req, res) => {
try {
const data = req.body;
const itemRef = await db.collection('items').add(data);
res.status(201).send(`Created a new item: ${itemRef.id}`);
} catch (error) {
res.status(400).send(error.message);
}
};
Explique el porqué es recomendable (v1 del proyecto restapi) separar el enrutador y el controlador versus (v2 del proyecto security) colocar todo el código en el enrutador.
Enrutador
const itemController = require('../controllers/itemController');
router.get('/items', itemController.getAllItems);
module.exports = router;
Controlador
exports.getAllItems = async (req, res) => {
...
};
Enrutador
router.get('/', function (req, res, next) {
...
});
module.exports = router;
¿Cuál es el próposito de utilizar un ORM (v1) en lugar de escribir el DQL (v2)?
app.get('/users', async (req, res) => {
try {
const users = await User.findAll();
res.json(users);
} catch (error) {
res.status(500).json({ error: 'Error fetching users' });
}
});
app.get('/users', async (req, res) => {
try {
const result = await pool.query('SELECT * FROM users');
res.json(result.srows);
} catch (error) {
res.status(500).json({ error: 'Error fetching users' });
}
});