Javascript 由nodeJS中的值之和生成的NaN

Javascript 由nodeJS中的值之和生成的NaN,javascript,html,node.js,server,nan,Javascript,Html,Node.js,Server,Nan,我对Javascript相当陌生。但是我创建了一个HTML代码,它接受输入,然后NodeJS在服务器上运行它来计算总和。我正确下载了这两个模块。但我似乎还是把Nan作为数的和 对于一个朋友来说,代码似乎工作正常。我把他的JS代码复制粘贴到了我的JS代码上,还是没有运气 JS const express = require("express"); const bodyParser = require("body-parser"); const app = express(); app.use

我对Javascript相当陌生。但是我创建了一个HTML代码,它接受输入,然后NodeJS在服务器上运行它来计算总和。我正确下载了这两个模块。但我似乎还是把Nan作为数的和

对于一个朋友来说,代码似乎工作正常。我把他的JS代码复制粘贴到了我的JS代码上,还是没有运气

JS

const express = require("express");

const bodyParser = require("body-parser");

const app = express();

app.use(bodyParser.urlencoded({ extended: true }));

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

app.post("/", function(req, res) {
      console.log(req.body);
      var num1, num2, total = 0;
      num1 = req.body.num1;
      num2 = req.body.num2;
      total = num1 + num2;
      console.log(total);
      res.send("The result of the calculation is " + total);
});

app.listen(3000, function() {
     console.log("The server is running on port 3000.");
});
HTML

<form action="/" method="POST">
    <input type="text " name="num1 " placeholder="First Number " />
    <input type="text " name="num2 " placeholder="Second Number " />
    <button type="submit " name="submit ">Calculate</button>
</form>

算计

删除
名称
属性中的尾随空格,如果您要传递数字,为什么不将
类型
设置为
数字

其中一个值或两个值都被传递为
未定义
,因此会出现
NaN

两个错误:

  • 你在名字里加了空格
  • 你用文字代替数字
以下是正确的代码:

<form action="http://localhost:3000/" method="POST">
    <input type="number" name="num1" placeholder="First Number" />
    <input type="number" name="num2" placeholder="Second Number" />
    <button type="submit" name="submit">Calculate</button>
</form>


const express = require("express");

const bodyParser = require("body-parser");

const app = express();

app.use(bodyParser.urlencoded({ extended: true }));

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

app.post("/", function(req, res) {
      console.log(req.body);
      var num1, num2, total = 0;
      num1 = +req.body.num1;
      num2 = +req.body.num2;
      total = num1 + num2;
      console.log(total);
      res.send("The result of the calculation is " + total);
});

app.listen(3000, function() {
     console.log("The server is running on port 3000.");
});

算计
const express=要求(“express”);
const bodyParser=require(“body parser”);
常量app=express();
use(bodyParser.urlencoded({extended:true}));
应用程序获取(“/”,函数(请求,恢复){
res.sendFile(uu dirname+“/index.html”);
});
应用程序post(“/”,功能(请求,回复){
控制台日志(请求主体);
变量num1,num2,总计=0;
num1=+req.body.num1;
num2=+req.body.num2;
总计=num1+num2;
控制台日志(总计);
res.send(“计算结果为”+总计);
});
app.listen(3000,函数(){
log(“服务器正在端口3000上运行”);
});

从name中删除空格,使用type number,也可以使用parseInt

`<form action="/" method="POST">
    <input type="number" name="num1" placeholder="First Number " />
    <input type="number" name="num2" placeholder="Second Number " />
    <button type="submit " name="submit ">Calculate</button>
</form>

const express = require("express");

const bodyParser = require("body-parser");

const app = express();

app.use(bodyParser.urlencoded({ extended: true }));

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

app.post("/", function(req, res) {

      var num1, num2, total = 0;
      consol.log(req.body.num2)
      num1 = parseInt(req.body.num1);a
      num2 = parseInt(req.body.num2);
      total = num1 + num2;
      res.send("The result of the calculation is " + total);
});

app.listen(3000, function() {
     console.log("The server is running on port 3000.");
});`
`
算计
const express=要求(“express”);
const bodyParser=require(“body parser”);
常量app=express();
use(bodyParser.urlencoded({extended:true}));
应用程序获取(“/”,函数(请求,恢复){
res.sendFile(uu dirname+“/index.html”);
});
应用程序post(“/”,功能(请求,回复){
变量num1,num2,总计=0;
控制台日志(要求正文num2)
num1=parseInt(req.body.num1);a
num2=parseInt(请求主体num2);
总计=num1+num2;
res.send(“计算结果为”+总计);
});
app.listen(3000,函数(){
log(“服务器正在端口3000上运行”);
});`
try
console.log(num1、num2、total)
在求和之前查看num1和num2是什么
console.log(req.body)说什么?注意-
name=“num1”
为什么name属性有尾随空格?