Как получить любой API, используя URL, передавая какое-либо значение с помощью формы и получить ответ в соответствии с данными формы из API - PullRequest
0 голосов
/ 19 ноября 2018

каждый, я новичок в nodejs и expressjs. Поэтому во время практики у меня возник вопрос, что у меня есть один URL-адрес, с которого я хочу получить данные, и я просто сделал это. Ниже приведен код:

var express = require('express');
var app = express();
var request = require('request');
var bodyParser = require('body-parser');
app.set('view engine', 'ejs');
var urlencoderparser = bodyParser.urlencoded({ extended : true });
var data;
app.get('/', function (req, res) {
    request.get('http://mysafeinfo.com/api/data?list=englishmonarchs&format=json', function(err, res, body){
        if(err) {
            return console.log(error);
        }
        data = JSON.parse(body);
    });
   res.render('index', {data: data});
   console.log(data);
});
app.listen(3000);

И этот код работает нормально.

Тогда я подумал изменить URL, передавая значения с помощью формы.

enter image description here

мы можем ввести значение в форму. Значение должно быть либо XML, либо JSON, и в соответствии с этим оно изменит URL, как показано в приведенном ниже коде:

var url = 'http://mysafeinfo.com/api/data?list=englishmonarchs&format='+form_data

Теперь для этого я попробовал request.post () следующим образом:

app.get('/', function (req, res) {
    Request.post({
    "headers": { "content-type": "application/json" },
    "url": "http://mysafeinfo.com/api/data?list=englishmonarchs&format="+form_data,
    }, (error, response, body) => {
        if(error) {
            return console.log(error);
        }
        data = JSON.parse(body);
    });
   res.render('index', {data: data});
});
app.listen(3000);

Но это не работает. Пожалуйста, помогите мне узнать, где я ошибаюсь и является ли этот способ правильным для кодирования в nodejs или expressjs?

Привет всем, я добавляю целый код с вами для большего разрешения

var express = require('express');
var app = express();
var request = require('request');
var bodyParser = require('body-parser');

app.set('view engine', 'ejs');

var urlencoderparser = bodyParser.urlencoded({ extended : true });

app.get('/', function(req, res){
    res.render('index');
});

app.post('/', urlencoderparser, function(req, res){
    res.render('form-data', {data : req.body});
    request.post({
    "headers": { "content-type": "application/json" },
    "url": "http://mysafeinfo.com/api/data?list=englishmonarchs&format="+req.body.name,
    }, (error, response, body) => {
        if(error) {
            return console.log(error);
        }
        data = JSON.parse(body);
    });
    console.log(req.body);
});

app.listen(3000);
...