Я пытаюсь сделать запрос с использованием формы и хочу, чтобы ответом был 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 введенных ввода, данные отправляются в JSON, который находится по другому URL-адресу
"172. .20 :. ** 12 * 1013 / Поиск" **
Тогда мне нужно, чтобы 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 значения, которые должны быть переменными, и это 3 входа, которые я хочу, чтобы пользователь ввел в файл index.pug.
Это:
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");
});
* +1039 * Пример:
Если пользователь вводит 2, John и Xmas в форму index.pug, мне нужна эта форма, чтобы выполнить запрос Post на этот URL "172..20.: 12 * / search" **, а затем получить обратно JSON в другом файле .pug.
Любые идеи помогут мне понять, что я застрял и плохо знаком с Express.
С наилучшими пожеланиями всем!