簡體   English   中英

采用HTML格式並將值傳遞給node.js函數中的變量

[英]Take HTML form and pass values to variables in node.js function

問題陳述:我有一個簡單的HTML表單,要求用戶提供三個數字。 當他們點擊提交時,我會將表單傳遞到node.js文件,並將每個值分配給一個變量。

以下是我的HTML文件:

<body>
<form action="/" method="post">
<fieldset>
First number: <input type="number" name="param1"><br>
Second number: <input type="number" name="param2"><br>
Third number: <input type="number" name="param3"><br>
<input type="submit" value="submit" />
</fieldset>
</form>
</body>

這是我對node.js文件的一點了解:

var http = require('http');
var math = require('mathjs');

    var m = 3;
    var n = 5;
    var o = 7;
    var p = 2;

http.createServer(function(req,res) {

function pleaseSolve () {

    var comp = math.chain(m)
    .add(m)
    .divide(p)
    .multiply(o)
    .done();

res.writeHead(200, {'Content-Type': 'text/html'});
res.end("The answer is " + comp);

}

pleaseSolve();

}).listen(8080);

相反,我想要一種方法或類似的方法,可以使用HTML表單的輸入來分配這些變量,而不是簡單地對其進行硬編碼。

編輯:我已經被否決了,我已經在網上搜索了兩天以尋求答案,但是我還沒有找到答案。 請保持建設性,並至少將另一個帖子與否決和非建設性聯系起來。

以下以下Node.js代碼將解決您的問題。 您需要一條路由來返回您的主要html文件,以及一條路由來獲取發布數據並基於此數據返回結果。

var express = require('express')
var http = require('http');
var math = require('mathjs');
var bodyParser = require('body-parser');

var app = express()

// use body parser to easy fetch post body
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json())

// route to '/' to return the html file
app.get('/', function (req, res, next) {
  res.sendfile('index.html');
});

//route that receives the post body and returns your computation
app.post('/solve', function (req, res, next) {
  pleaseSolve(req.body, res);
});

app.listen(8080);

function pleaseSolve(parms, res) {
  //get the parameters based on input name attribute from the html
  //and parse strings to numbers
  var m = +parms.param1;
  var o = +parms.param2;
  var p = +parms.param3;

  var comp = math.chain(m)
    .add(m)
    .divide(p)
    .multiply(o)
    .done();

  res.writeHead(200, { 'Content-Type': 'text/html' });
  res.end("The answer is " + comp);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM