Tenemos un método res.json para enviar archivos en NodeJs, pero ¿qué pasaría si enviamos un archivo json usando res.send? ¿Cuáles serán las consecuencias y por qué debemos evitar hacer esto?
Supongo que estás hablando de ExpressJS:
Cada vez que un servidor de aplicaciones Express recibe una solicitud HTTP, proporcionará al desarrollador un objeto, comúnmente denominado res. Por ejemplo,
Ejemplo
app.get('/test', (req, res) => { // use req and res here })El objeto res básicamente se refiere a la respuesta que se enviará como parte de esta llamada a la API.
La función res.send establece el tipo de contenido en texto/Html , lo que significa que el cliente ahora lo tratará como texto. Luego devuelve la respuesta al cliente.
La función res.json en el otro teléfono asigna el encabezado de tipo de contenido a application/JSON para que el cliente trate la cadena de respuesta como un objeto JSON válido. También devuelve la respuesta al cliente.
Con res.send, debe encargarse de convertirlo en un objeto JSON si es necesario, mientras que con res.json esto se hace automáticamente.
Envía una respuesta JSON. Este método envía una respuesta (con el tipo de contenido correcto) que es el parámetro convertido a una cadena JSON mediante JSON.stringify() .
El parámetro puede ser de cualquier tipo JSON, incluidos objeto, matriz, cadena, booleano, número o nulo, y también puede usarlo para convertir otros valores a JSON.
Envía la respuesta HTTP.
El parámetro del cuerpo puede ser un objeto de búfer, una cadena, un objeto, un booleano o una matriz.
Este método realiza muchas tareas útiles para respuestas simples que no son de transmisión: por ejemplo, asigna automáticamente el campo de encabezado de respuesta HTTP Content-Length (a menos que se haya definido previamente) y proporciona soporte automático de actualización de caché HEAD y HTTP.
Cuando el parámetro es un objeto de búfer, el método establece el campo de encabezado de respuesta de tipo de contenido en "aplicación/flujo de octetos", a menos que se haya definido previamente.
Cuando el parámetro es una cadena, el método establece el tipo de contenido en "texto/html".
Cuando el parámetro es una matriz o un objeto, Express responde con la representación JSON.