我正在尝试使用表单发出发布请求,并希望答案是一个JSON,其中包含用户在表单中输入的数据。
这是我的index.pug文件:
doctype html
html(lang='en')
head
title HPI
body
h1 Formulario HPI
#container
form(action="/formulario" method="post")
label(for='nodoHpi') Nodo Hpi
input#nodoHpi(name='nodoHpi', type='text')
br
br
label(for='nombreIndice') Nombre Indice
input#nombreIndice(name='nombreIndice', type='text')
br
br
label(for='valorIndice') Valor Indice
input#valorIndice(name='valorIndice', type='text')
br
br
button(type="submit") SEND
我真的不知道该怎么做...
我需要的是,当用户在提供的3个输入中输入信息时,数据将发布到另一个URL中的JSON
“ 172。 .20。:12 * /搜索” **
然后我需要将JSON渲染并显示在HTML中。
这是JSON示例:
{
"token": "1",
"query": [{
"index": "ALTC.MC_ROBERTS",
"terms": [{
"name": "INDEXTEXT01T",
"value": "3044071*",
"operator": "like"
}],
"results": {
"count": 5000,
"sort": [{
"name": "ISSUE_DATE",
"order": "descending"
}],
"fields": []
}
}]
}
JSON中有3个值需要可变,而这是我希望用户在index.pug文件中输入的3个输入。
这些是:
ALTC.MC_ROBERTS
INDEXTEXT01T
3044071
最后这是我的app.js文件:
const express = require('express');
const request = require('request');
const bodyParser = require('body-parser');
const app = express();
const hostname = '172.19.20.10:12530/search';
const port = '3000';
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.set('view engine', 'pug');
var headersOpt = {
"content-type": "application/json",
};
request.post(
{
method:'post',
url:'http://172.19.20.10:12530/search',
form: {nombreIndice:'hello',valorIndice:25, nodoHpi: 'nodo'},
headers: headersOpt,
json: true,
}, function (error, response, body) {
//Print the Response
console.log(body);
});
app.get('/', (req, res) => {
res.render('index');
});
app.post('/formulario', (req, res) => {
res.render('formulario', {prueba: req.body.nodoHpi});
});
app.listen(port, () => {
console.log("The server is listening in localhost: 3000");
});
示例:
如果用户在index.pug表单中输入2,John和Xmas,则需要该表单对该URL进行发布请求“ 172..20。:12 * / search” **,然后返回JSON在另一个.pug文件中。
任何想法对我来说都是新手,这对Express来说是一个很大的帮助。
最诚挚的问候!