Al final de la función de ruta, cuando hago algo como esto.
res.send(JSON.stringify({...}));Me gustaría que el tipo de contenido de la respuesta se establezca como "texto/sin formato", pero es "texto/html". ¿Hay alguna forma de configurarlo explícitamente? Busco en el documento pero aún no tengo ninguna pista.
setHeader antes de enviar: https://nodejs.org/api/http.html#http_response_setheader_name_value
res.setHeader('content-type', 'text/plain'); res.send(JSON.stringify({...}));Hay algunas formas de lograr esto, la más limpia/simple de las cuales es probablemente (asumiendo el uso de express , según la etiqueta; vea la opción de respuesta final si no usa expressjs):
res.type('txt'); res.send(JSON.stringify({...})); Eso es usar res.type , que brinda una serie de abreviaturas, además de poder establecer tipos mimo explícitos, por ejemplo (entre muchos otros):
res.type('.html') // => 'text/html' res.type('html') // => 'text/html' res.type('json') // => 'application/json' res.type('application/json') // => 'application/json' res.type('png') // => 'image/png' res.type('mp3') // => 'audio/mp3' A partir de este escrito, esto se implementa en términos de res.set , que también podría llamarse directamente:
res.set('content-type', 'text/plain'); res.send(JSON.stringify({...})); Estas son las formas oficialmente documentadas de realizar esta funcionalidad (excepto que también res.header es un alias para res.set ). Sin embargo, parece que los objetos de respuesta se derivan de http.ServerResponse y, por lo tanto, también tienen (y usan , en la implementación) el método setHeader de eso, que tiene el mismo uso que res.set , sin la misma funcionalidad. como res.set (algunas comprobaciones no se realizan, etc.) ... Pero hace el trabajo básico, por lo que es muy posible que uno pueda encontrar un código en la naturaleza que resolvería los objetivos de esta pregunta como (especialmente si no es una aplicación express, sino que usa el paquete http en su lugar):
res.setHeader('Content-Type', 'text/plain'); res.send(JSON.stringify({...})); (Como nota al margen: según RFC 7230 (anteriormente en RFC 2616 ), los nombres de los encabezados distinguen entre mayúsculas y minúsculas. Dicho esto, el Content-Type mayúsculas es lo que se usa en RFC 7231 , que define su significado y uso, y es lo que res.type usará Dicho esto, he visto al menos algunos ejemplos de res.set que se usan con nombres de encabezado en minúsculas, así que pensé en mostrar que ambos son posibles).