#javascript #html #node.js #express
#javascript #HTML #node.js #экспресс
Вопрос:
итак, я использую этот bmiCalculator, где я ввожу 2 числа, и эти 2 числа вычисляются на моем сервере, и отображается ответ, но я столкнулся с проблемами при получении моего вывода.когда я нажимаю отправить, я получаю список всех моих файлов в индексе c, но не ответ. Может кто-нибудь, пожалуйста, помочь мне с этим?
мой HTML-код
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>BMI calculator</h1>
<form action="/" method="post">
<input type="text" name="num1">
<input type="text" name="num2">
<input type="button" value="submit">
</form>
</body>
</html>
мой js-код
let express = require("express")
let bodyParser = require("body-parser")
let app = express()
app.use(bodyParser.urlencoded({extended: true}))
app.listen(3000,function(){
console.log("working")
})
app.get('/',function(request,respond){
respond.sendFile(__dirname "/bmiCalculator.html")
})
app.post('/',function(req,res){
let num1 = Number(req.body.num1)
let num2 = Number(req.body.num2)
let result = num1/num2*num2
res.send(result)
})
Ответ №1:
- Согласно документам Express res.send([body]):
Параметр body может быть объектом Buffer, строкой, объектом или массивом
Вы не можете отправить номер сам по себе. Итак, вы могли бы отправить строку с помощью result.toString()
- Вы должны использовать
<input type="submit" value="submit">
для отправки формы.
Например.
server.js
:
let express = require('express');
let bodyParser = require('body-parser');
let app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.listen(3000, function() {
console.log('working');
});
app.get('/', function(request, respond) {
respond.sendFile(__dirname '/bmiCalculator.html');
});
app.post('/', function(req, res) {
console.log(req.body);
let num1 = Number(req.body.num1);
let num2 = Number(req.body.num2);
let result = (num1 / num2) * num2;
res.send(result.toString());
});
bmiCalculator.html
:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>BMI calculator</h1>
<form action="/" method="post">
<input type="text" name="num1">
<input type="text" name="num2">
<input type="submit" value="submit">
</form>
</body>
</html>
Сервер регистрируется после отправки формы на стороне клиента:
working
{ num1: '1', num2: '2' }