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

358
Visualizações
No se puede ejecutar ningún código javascript normal en node.js express.js

Estoy aprendiendo express.js y tengo este código express básico aquí:

 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 //num1 and num2 are coming from index.html which I have inciude above let n2 = req.body.num2 let result = n1 + n2 res.send(result) }) app.listen(port, () => { console.log(`Example app listening on port ${port}`) })

Pero toma n1 y n2 como cadenas. Entonces, si doy n1 = 2 y n2 = 4, devuelve 24 pero no 6, así que traté de convertir n1 y n2 como números, así que lo intenté

 let n1 = Number(req.body.num1) let n2 = Number(req.body.num2)

Pero da error llamado:

 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 write_ (node:_http_outgoing:766:9) at ServerResponse.end (node:_http_outgoing:855:5) at ServerResponse.send (C:\Users\USERNAME \OneDrive\Desktop\lll\calculator\node_modules\express\lib\response.js:232:10) at ServerResponse.sendStatus (C:\Users\USERNAME \OneDrive\Desktop\\calculator\node_modules\express\lib\response.js:375:15) at C:\Users\USERNAME \OneDrive\Desktop\lll\calculator\calculator.js:18:9 at Layer.handle [as handle_request] (C:\Users\USERNAME \OneDrive\Desktop\lll\calculator\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\USERNAME \OneDrive\Desktop\lll\calculator\node_modules\express\lib\router\route.js:144:13)

Incluso si intenté consolar el registro del tipo de result , devuelve este tipo de error. Puede alguien ayudarme por favor

El código index.html:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Caluculator</title> </head> <body> <h1>Caluculator</h1> <form action="/" method="post"> <input type="text" name="num1" placeholder="Enter First Number" /> <input type="text" name="num2" placeholder="Enter Second Number" /> <button type="submit" name="submit">Calculate</button> </form> </body> </html>
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

El error proviene de esta línea res.sendStatus (resultado) El resultado no es un código de estado válido. En vez de

 let n1 = Number(req.body.num1);

Poner

 const n1 = +req.body.num1; const n2 = +req.body.num2; const result= n1+n2; res.status(200).send({result, message:"success"});

El código de estado debe ser de 100 a 599

about 4 years ago · Juan Pablo Isaza Relatório

0

El error proviene de res.sendStatus(result) y en su lugar debería ser res.send(result) . Si desea configurar manualmente el estado, entonces debería ser res.status(200).send(result) , intercambiando 200 por el código de estado que desea configurar.

Además de esto, también debe convertir el número en una cadena. La forma más eficaz es discutible, pero mi método habitual para hacerlo es como ${n1 + n2} .

En su caso, con los cambios mencionados anteriormente, su JavScript debería verse así:

 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 //num1 and num2 are coming from index.html which I have inciude above let n2 = req.body.num2 let result = n1 + n2 res.send(`${result}`) }) app.listen(port, () => { console.log(`Example app listening on port ${port}`) })

Hay más información en la documentación de Express .

about 4 years ago · Juan Pablo Isaza Relatório

0

Encontré la respuesta así No se pueden enviar números usando res.send() usando express con nodo

Debe enviar cadena en lugar de número

 app.post("/", (req, res) => { let n1 = Number(req.body.num1) //num1 and num2 are coming from index.html which I have inciude above let n2 = Number(req.body.num2) let result = n1 + n2 res.send(''+result) })

Probé y funcionó

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