【发布时间】:2017-12-26 09:17:19
【问题描述】:
我的目标是创建一个 HTML 表单,当您提交 2 个数字时,它们会在 node.js 中的服务器端相加,并且答案会显示在同一 HTML 页面的只读输入字段中。目前,我的函数在单独的页面中输出答案-我不想重定向用户,只是在计算服务器端时在同一页面上显示答案。
我当前的 app.js:
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var app = express();
app.set('port', process.env.PORT || 8080);
app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static(path.join(__dirname, '../static')));
app.get('/', function(req, res){
res.redirect('/public');
});
app.post('/add', function(req, res){
var a = parseFloat(req.body.numa);
var b = parseFloat(req.body.numb);
var sum = a+ b;
res.send('Sum: ' + sum);
});
var server = app.listen(app.get('port'), function(){
var port = server.address().port;
});
我的 HTML:
<!DOCTYPE html>
<html>
<head>
<title>hello</title>
</head>
<body onload="testFunc()">
<h1>Public page</h1>
<form action="/add" method="post">
Number 1:
<input type="number" name="numa" step="any"/><br>
Number 2:
<input type="number" name="numb" step="any"/><br>
<input type="number" name="answer" readonly/>
<input type="submit" value="Submit"/>
</form>
</body>
</html>
我浏览了其他帖子,但解决方案都是通过哈巴狗或玉石完成的,有没有办法做到这一点?任何关于我应该采取什么方向的建议将不胜感激!谢谢。
【问题讨论】:
-
如果您不想重定向,则必须使用 ajax,服务器端模板语言无济于事。
标签: javascript html node.js express