Una función de devolución de llamada se pasa como argumento a otra función. Para respetar la separación de preocupaciones, ¿cómo puedo reescribir el siguiente ejemplo como una devolución de llamada ? Sé que la parte Req,Res está subcontratada al enrutador.
Servicio de usuario.js
function getByUserId(req, res, next) { let userIDD = req.body.userID; User.findOne({ userID: userIDD }, function(err, result) { if (err) { console.log("error: " + err) } else { console.log("Awesome."); res.send(result) } }) }UserRoute.js
router.post('/publicUser/getByUserID', userService.getByUserId)Creo que ahora está bien, pero si desea usar la devolución de llamada y usar esta función como un software intermedio, puede hacer next(result) en lugar de res.send(result)
Si desea declarar una función de devolución de llamada directamente en su método de post , puede usar una función de flecha:
router.post('/publicUser/getByUserID', (req, res) => { let userIDD = req.body.userID; User.findOne({ userID: userIDD }, function(err, result) { if (err) { console.log("error: " + err) return res.send(err); } console.log("Awesome."); res.send(result) }) })