Estoy escribiendo un Servicio para que lo usen mis Controladores en mi aplicación Sails.js.

Si se arroja un error en el Servicio, me gustaría devolver un error. Estoy acostumbrado a la sintaxis de function callback(err, bar){ if (err) return error}. Sin embargo, estoy en un caso ligeramente diferente. En el siguiente código

function callBack(err, uploadedFiles){
    if (err) return err;
    if (uploadedFiles.length == {
       return foo; //This is what needs to be of type "err"
    } 
});
}
}

Entonces, ¿creo un objeto JSON como

return { error: "error", message: 404}

No estoy segura de cómo hacer esto.

0
Thalatta 10 dic. 2015 a las 03:00

3 respuestas

La mejor respuesta

¿Por qué no usas las funciones de velas para las respuestas? También soy nuevo, así que discúlpeme si dice algo tonto.

Si desea enviar un código de estado 404 que es para errores de No encontrado, puede usar las respuestas proporcionadas de velas res.notFound () de esta manera:

return res.notFound({
    message: "Some Message Here"
});

Si desea mostrar un mensaje completamente personalizado sin ningún código de estado como 404, use send () en su lugar de esta manera:

return res.send({
    status: "404 or anything you like",
    message: "Some Message Here"
});

Lo sentimos, res.send () también generará un código de estado, pero será 200, lo que significa que está bien, por lo que es un código de éxito.

1
Rakesh 10 dic. 2015 a las 14:52

Puede generar su error 404 en sus Servicios de esta manera (suponiendo que su servicio necesite funcionar de forma asíncrona):

var err = new Error('your message');
err.status = 404; // could be other HTTP status
return cb(err);

Y en su función de llamada, puede manejar el error de esta manera:

SomeServices.somefunction(options, function (err, data) {
  // res.negotiate(err) will automatically trigger res.notFound if err.status is 404
  if (err) return res.negotiate(err); 
  /* your logic if not 404 */
}

Los códigos son bastante simples aquí. ¿Es eso lo que quieres?

0
Anthony Yuen 15 feb. 2017 a las 03:10

Yo creo que es:

{success:false, error: err}
0
Thalatta 10 dic. 2015 a las 00:18
34191365