如何使用表单将值发送到JS文件并执行NodeJS

时间:2018-05-10 19:37:46

标签: node.js forms express

我从NodeJS开始并练习我创建一个项目,其中我有一个包含某些字段的表单,表单在 views 文件夹中创建为 teste.ejs。

Teste.ejs

<div class="container">
<form id="form1" method="POST" action="/inndetails.js">
<div class="row">
  <div class="col-25">
    <label for="fname">MerchantID</label>
  </div>
  <div class="col-75">
    <input type="text" id="fname" name="merchantid" placeholder="MerchantID..">
  </div>
<div class="row"><div class="row">
  <div class="col-25">
    <label for="fname">Valor</label>
  </div>
  <div class="col-75">
    <input type="text" id="valor" name="valor" placeholder="Valor..">
  </div>
<div class="row">
  <input type="submit" value="Submit">
</div>

此表单有两个字段&#34; MerchantID&#34;和&#34;勇气&#34;。我希望当我使用POST提交时,这些字段中的值将转到名为&#34; inndetails.js&#34;的一个JS文件中。并执行此文件。

Inndetails.js

sdk.getIinDetails({
'psp_Version': '2.2',
'psp_MerchantId': '**From the form**',
'psp_IIN': '**From the form**',
'psp_PosDateTime': '2016-12-01 12:00:00'
},
function (error, response) {
if (error) {
    console.log(error)
} else {
    console.log(response);
}
});

我已经在使用Express和Body Parser,在我的 routes 文件夹中我有 index.js 包含的文件:

var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var router = express.Router();

router.post('/teste2', urlencodeParser, function(req, res) {
console.log(req.body);
res.render('teste2', ´{data: req.body});
});

我可以从表单中获取值并显示在另一个页面中,例如 teste2.ejs ,使用:

<p>MerchantID: <%= data.merchantid %></p>
<p>Valor: <% data.valor %></p>

1 个答案:

答案 0 :(得分:0)

我认为您需要将index.js文件更改为

var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var router = express.Router();

router.post('/teste2', bodyParser.urlencoded({limit: '50mb', extended: false }), function(req, res) {
console.log(req.body);
res.render('teste2', ´{data: req.body});
});

参数{limit: '50mb', extended: false }是一个选项,您可以在此处查看其他参数https://www.npmjs.com/package/body-parser `