Estoy creando una API REST usando Node js y expressJs , pero de repente me encontré con un problema cuando traté de crear un usuario, entonces puedo crearlo de esta manera:
/** * save user data from the user model */ router.post("/users", async (req, res) => { const user = new User(req.body); try { await user.save(); res.status(201).send( user); } catch (e) { res.status(400).send(e); } });después de crear un usuario, puedo ver una respuesta en cartero.
Pero cuando traté de ir a /users/login de sesión, me encontré con un problema que me muestra 400 bad requests tampoco pueden obtener ninguna respuesta. aquí está mi código:
/** * User login. */ router.post("/users/login", async (req, res) => { try { const user = await User.findByCredentials( req.body.email, req.body.password ); res.send( user); } catch (e) { res.status(400).send(); } }); /** * user login crendentials */ userSchema.statics.findByCredentials = async (email, password) => { const user = await User.findOne({ email }); if (!user) { throw new Error("Unable to login"); } const isMatch = await bcrypt.compare(password, user.password); if (!isMatch) { throw new Error("Unable to login"); } };Cualquier sugerencia será muy apreciada Gracias.
Resolví mi problema devolviendo el user , así:
/** * user login crendentials */ userSchema.statics.findByCredentials = async (email, password) => { const user = await User.findOne({ email }); if (!user) { throw new Error("Unable to login"); } const isMatch = await bcrypt.compare(password, user.password); if (!isMatch) { throw new Error("Unable to login"); } return user; //-------->>>>>>> add this line };