NaN 由 nodeJS 中的值之和产生
NaN resulting from sum of values in nodeJS
我是 Javascript 的新手。但是我创建了一个接受输入的 HTML 代码,然后 NodeJS 在服务器上运行它来计算总和。我正确下载了这两个模块。但我似乎仍然认为 Nan 是数字的总和。
代码似乎对一位朋友有效。我将他的 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>
删除 name
属性中的尾随 space,如果您要传递数字,为什么不将 type
设置为 number
并且其中一个值或两个值都作为 undefined
传递,因此您得到 NaN
2 个错误:
- 你在名字中加了空格
- 您使用文本而不是数字
正确代码如下:
<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.");
});
从名称中删除 space,使用类型编号,您也可以使用 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.");
});`
我是 Javascript 的新手。但是我创建了一个接受输入的 HTML 代码,然后 NodeJS 在服务器上运行它来计算总和。我正确下载了这两个模块。但我似乎仍然认为 Nan 是数字的总和。
代码似乎对一位朋友有效。我将他的 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>
删除 name
属性中的尾随 space,如果您要传递数字,为什么不将 type
设置为 number
并且其中一个值或两个值都作为 undefined
传递,因此您得到 NaN
2 个错误:
- 你在名字中加了空格
- 您使用文本而不是数字
正确代码如下:
<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.");
});
从名称中删除 space,使用类型编号,您也可以使用 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.");
});`