Estoy tratando de enviar un valor entero como respuesta después de llamar a API Endpoint. Este es un código de muestra para ilustrar el problema:
app.post('/add5', (req, res) => { result = req.body.num + 5; res.send(result); });Y esta es la carga útil de la solicitud:
{ "num": 7 }Salida esperada: 12
Pero después de la salida se registró en el terminal y no se recibió ninguna respuesta (en blanco).
RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code: 12 at new NodeError (node:internal/errors:371:5) at ServerResponse.writeHead (node:_http_server:272:11) at ServerResponse._implicitHeader (node:_http_server:263:8) at ServerResponse.end (node:_http_outgoing:871:10) at ServerResponse.send (/storage/emulated/0/codes/api/node_modules/express/lib/response.js:221:10) at /storage/emulated/0/codes/api/index.js:208:7 at Layer.handle [as handle_request] (/storage/emulated/0/codes/api/node_modules/express/lib/router/layer.js:95:5) at next (/storage/emulated/0/codes/api/node_modules/express/lib/router/route.js:137:13) at Route.dispatch (/storage/emulated/0/codes/api/node_modules/express/lib/router/route.js:112:3) at Layer.handle [as handle_request] (/storage/emulated/0/codes/api/node_modules/express/lib/router/layer.js:95:5)Pero, agregar un poco de cadena en la cadena funciona totalmente bien.
app.post('/add5', (req, res) => { result = req.body.num + 5; res.send("Result: " + result); });Esto devuelve la salida esperada, es decir, Resultado: 12
Utilice res.json(result) o res.send(JSON.stringify(result)) o res.send(200, result) . De lo contrario, express asume que está pasando un código de estado http para send , como lo indica el mensaje de error. O actualice a express 4, donde esto ya no puede suceder .