Estaba practicando con express y mongoDB, cuando estaba definiendo rutas API me di cuenta de que las personas en Internet usan el primer método. Pero creo que el segundo es más fácil de leer, especialmente con datos más grandes. Me pregunto si hay una diferencia o un problema de seguridad entre ellos. Gracias por adelantado.
// first approach router.route("/add").post((req, res) => { const email = req.body.email; const password = req.body.password; const displayName = req.body.displayName; const newUser = new User({ email, password, displayName }); newUser .save() .then(() => res.json("OK")) .catch((err) => { res.status(400).json(err); }); }); // second approach router.route("/add").post((req, res) => { const newUser = new User({ ...req.body }); newUser .save() .then(() => res.json("OK")) .catch((err) => { res.status(400).json(err); }); });cuando usa mongoose, según la documentación de mongoose, de forma predeterminada, los documentos ( req.body ) se validan automáticamente (según el esquema) antes de guardarlos en la base de datos.
Esto es para evitar guardar un documento no válido, por lo que no hay un problema de seguridad en el segundo enfoque y es más fácil de leer, por lo que puede usar el segundo enfoque
Desde la perspectiva de la seguridad, son lo mismo.
En mi opinión, el primer enfoque es mejor, algunas razones prácticas:
Puede simplificar las declaraciones utilizando la sintaxis de asignación de desestructuración de ES6 .
Desde:
const email = req.body.email; const password = req.body.password; const displayName = req.body.displayName;Para:
const { email, password, displayName } = req.body;Además, consulte el JavaScript de código limpio que puede ayudarlo a decidir.