Home > Software design >  Why I am getting this error in nodejs express js
Why I am getting this error in nodejs express js

Time:01-19

I am trying to calculate BMI

and it's giving me this error

Your BMI is NaN...I am using nodejs expressjs

here is my js code

const express =  require("express");

const app  =  express();


app.get("/", function(req, res){
    res.sendFile(__dirname   "/index.html");
});


app.post("/", function(req, res){
    var weight = parseInt("req.body.weight");
    var height = parseInt("req.body.height");

    var bmi = weight / (height * height);

    res.send("Your BMI is "   bmi);

});

app.listen(3000, function(){
    console.log("Server Started at Port 3000");
});

and here is my html code

<!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>BMI Calculator</title>
</head>
<body>
    <h1>BMI Calculator</h1>
    <form action="/" method="post">
        <input type="weight" name="weight" placeholder="Please type your weight">;
        <input type="height" name="height" placeholder="Please type your height">;
        <button type="submit">Calculate</button>
    </form>
</body>
</html>

A help would be appreciated

CodePudding user response:

"req.body.weight" should be without "s.

var weight = parseInt("req.body.weight");
var height = parseInt("req.body.height");

Here you parsed a int from a string literally called 'req.body.weight'

Thus, you get Not a Number as an output

CodePudding user response:

Try to change your post method like this:

app.post("/", function(req, res){
    const { weight, height } = req.body;
    var bmi = Number(weight) / (Number(height) * Number(height));

    res.send("Your BMI is "   bmi);
});
  •  Tags:  
  • Related