Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

361
Vistas
¿Por qué el código expreso devuelve un error si no doy una cadena vacía?

Tengo un código expreso simple que agrega dos números:

 const express = require('express') const bodyParser = require('body-parser') const app = express() const port = 3000 app.use(bodyParser.urlencoded({ extended: true })) app.get('/', (req, res) => { res.sendFile(__dirname + "/index.html") }) app.post("/", (req, res) => { let n1 = req.body.num1 //these n1 and n2 are coming from inex.html let n2 = req.body.num2 let result = Number(n1) + Number(n2) res.send("" + result) }) app.listen(port, () => { console.log("Server is running at port 3000") })

En res.send , si eliminé la cadena vacía y escribo solo res.send(result) , el código devuelve un error:

 RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code: 5 at new NodeError (node:internal/errors:372:5) at ServerResponse.writeHead (node:_http_server:275:11) at ServerResponse._implicitHeader (node:_http_server:266:8) at ServerResponse.end (node:_http_outgoing:871:10) at ServerResponse.send (C:\Users\Vandana Singh Bondil\OneDrive\Desktop\Lokesh\calculator\node_modules\express\lib\response.js:232:10) at C:\Users\Vandana Singh Bondil\OneDrive\Desktop\Lokesh\calculator\calculator.js:17:9 at Layer.handle [as handle_request] (C:\Users\Vandana Singh Bondil\OneDrive\Desktop\Lokesh\calculator\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\Vandana Singh Bondil\OneDrive\Desktop\Lokesh\calculator\node_modules\express\lib\router\route.js:144:13) at Route.dispatch (C:\Users\Vandana Singh Bondil\OneDrive\Desktop\Lokesh\calculator\node_modules\express\lib\router\route.js:114:3) at Layer.handle [as handle_request] (C:\Users\Vandana Singh Bondil\OneDrive\Desktop\Lokesh\calculator\node_modules\express\lib\router\layer.js:95:5)

¿Alguien puede decirme por qué funciona el código?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Porque send requiere que body sea...

...un objeto Buffer , un String , un objeto, Boolean o un Array .

Los números no están en esa lista, pero las cadenas sí. Aunque no está documentado en v4 (en adelante), en v3 podría pasar un código de estado de respuesta (como 200 o 404) como primer argumento, y aparentemente todavía admite hacerlo (a pesar de no estar documentado) en la versión que está usando, probablemente para apoyar proyectos heredados. 5 no es un código de estado de respuesta válido, por lo que obtiene el error. Tienes que convertir tu número a cadena. "" + result es una forma de hacerlo. Otros son String(result) o result.toString() .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda