El método HTTP TRACE realiza una prueba de bucle invertido de mensajes a lo largo de la ruta al recurso de destino, lo que proporciona un mecanismo de depuración útil. El destinatario final de la solicitud debe reflejar el mensaje recibido al cliente como el cuerpo del mensaje de una respuesta 200 (OK) con un tipo de contenido de mensaje/http.
Ejemplo de una solicitud HTTP con el método TRACE :

Ejemplo de respuesta a una solicitud con el método TRACE :

const path = require( 'path' ); const express = require( 'express' ); // version 4.x const favicon = require( 'serve-favicon' ); const app = express(); app .use( favicon( path.join( __dirname, 'assets', 'logo.ico' ) ) ); app.trace( '*', ( req, res ) => { // how do I return the entire request in its original form in response? } );El argumento de la request en Express es en realidad un objeto http.IncomingMessage de node.js modificado para que pueda obtener todos los datos de la solicitud:
app.trace( '*', ( req, res ) => { res.end( `${req.method} ${req.url} HTTP/${req.httpVersion}\r\n` + req.rawHeaders.join('\r\n') ) });Por lo general, esto volvería a crear la solicitud, pero debido a que la está reconstruyendo en lugar de simplemente copiarla, puede haber pequeñas diferencias.