Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

368
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda