Code is not working when i am trying to edit the API URL by data entered in form and fetch data from API












0














Hello everyone as I am beginner in nodejs and expressjs, I am trying to fetch data according to the value entered in the form. And according to the value URL will be edited and send request and get data and show it to page. I wrote the code but it is not working.



Index.ejs



    <form action="/index" method="POST">
<label for="name">Enter json/xml: </label>
<input type="text" name="name">
&nbsp&nbsp&nbsp&nbsp&nbsp<button type="submit">Submit</button>
</form>


app.js



    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);
});


Please help me to find the solution










share|improve this question






















  • Please add more information! Add more info about the issue you're facing. Its not working wouldn't help anybody out :)
    – vibhor1997a
    Nov 20 '18 at 13:03












  • It´s really hard to help you with the info provided but maybe you seem to be posting to "/index" and having express serve on "/" ?
    – Antonio Ortells
    Nov 20 '18 at 15:43












  • @AntonioOrtells sir as i am on learning stage, i am not sure of these things. I am just finding the exact way to run code in such type of conditions, I just want to enter the value in the form then according to the form value it will call api URL and fetch data and show on other template file
    – Abhishek Rawal
    Nov 21 '18 at 6:41
















0














Hello everyone as I am beginner in nodejs and expressjs, I am trying to fetch data according to the value entered in the form. And according to the value URL will be edited and send request and get data and show it to page. I wrote the code but it is not working.



Index.ejs



    <form action="/index" method="POST">
<label for="name">Enter json/xml: </label>
<input type="text" name="name">
&nbsp&nbsp&nbsp&nbsp&nbsp<button type="submit">Submit</button>
</form>


app.js



    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);
});


Please help me to find the solution










share|improve this question






















  • Please add more information! Add more info about the issue you're facing. Its not working wouldn't help anybody out :)
    – vibhor1997a
    Nov 20 '18 at 13:03












  • It´s really hard to help you with the info provided but maybe you seem to be posting to "/index" and having express serve on "/" ?
    – Antonio Ortells
    Nov 20 '18 at 15:43












  • @AntonioOrtells sir as i am on learning stage, i am not sure of these things. I am just finding the exact way to run code in such type of conditions, I just want to enter the value in the form then according to the form value it will call api URL and fetch data and show on other template file
    – Abhishek Rawal
    Nov 21 '18 at 6:41














0












0








0







Hello everyone as I am beginner in nodejs and expressjs, I am trying to fetch data according to the value entered in the form. And according to the value URL will be edited and send request and get data and show it to page. I wrote the code but it is not working.



Index.ejs



    <form action="/index" method="POST">
<label for="name">Enter json/xml: </label>
<input type="text" name="name">
&nbsp&nbsp&nbsp&nbsp&nbsp<button type="submit">Submit</button>
</form>


app.js



    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);
});


Please help me to find the solution










share|improve this question













Hello everyone as I am beginner in nodejs and expressjs, I am trying to fetch data according to the value entered in the form. And according to the value URL will be edited and send request and get data and show it to page. I wrote the code but it is not working.



Index.ejs



    <form action="/index" method="POST">
<label for="name">Enter json/xml: </label>
<input type="text" name="name">
&nbsp&nbsp&nbsp&nbsp&nbsp<button type="submit">Submit</button>
</form>


app.js



    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);
});


Please help me to find the solution







node.js api express ejs restful-url






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 20 '18 at 12:59









Abhishek Rawal

708




708












  • Please add more information! Add more info about the issue you're facing. Its not working wouldn't help anybody out :)
    – vibhor1997a
    Nov 20 '18 at 13:03












  • It´s really hard to help you with the info provided but maybe you seem to be posting to "/index" and having express serve on "/" ?
    – Antonio Ortells
    Nov 20 '18 at 15:43












  • @AntonioOrtells sir as i am on learning stage, i am not sure of these things. I am just finding the exact way to run code in such type of conditions, I just want to enter the value in the form then according to the form value it will call api URL and fetch data and show on other template file
    – Abhishek Rawal
    Nov 21 '18 at 6:41


















  • Please add more information! Add more info about the issue you're facing. Its not working wouldn't help anybody out :)
    – vibhor1997a
    Nov 20 '18 at 13:03












  • It´s really hard to help you with the info provided but maybe you seem to be posting to "/index" and having express serve on "/" ?
    – Antonio Ortells
    Nov 20 '18 at 15:43












  • @AntonioOrtells sir as i am on learning stage, i am not sure of these things. I am just finding the exact way to run code in such type of conditions, I just want to enter the value in the form then according to the form value it will call api URL and fetch data and show on other template file
    – Abhishek Rawal
    Nov 21 '18 at 6:41
















Please add more information! Add more info about the issue you're facing. Its not working wouldn't help anybody out :)
– vibhor1997a
Nov 20 '18 at 13:03






Please add more information! Add more info about the issue you're facing. Its not working wouldn't help anybody out :)
– vibhor1997a
Nov 20 '18 at 13:03














It´s really hard to help you with the info provided but maybe you seem to be posting to "/index" and having express serve on "/" ?
– Antonio Ortells
Nov 20 '18 at 15:43






It´s really hard to help you with the info provided but maybe you seem to be posting to "/index" and having express serve on "/" ?
– Antonio Ortells
Nov 20 '18 at 15:43














@AntonioOrtells sir as i am on learning stage, i am not sure of these things. I am just finding the exact way to run code in such type of conditions, I just want to enter the value in the form then according to the form value it will call api URL and fetch data and show on other template file
– Abhishek Rawal
Nov 21 '18 at 6:41




@AntonioOrtells sir as i am on learning stage, i am not sure of these things. I am just finding the exact way to run code in such type of conditions, I just want to enter the value in the form then according to the form value it will call api URL and fetch data and show on other template file
– Abhishek Rawal
Nov 21 '18 at 6:41












2 Answers
2






active

oldest

votes


















1














I think you have a problem with bodyParser.



// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

// parse application/json
app.use(bodyParser.json())


Add these just after app.set('view engine', 'ejs');



And your post function should be like this



     app.post('/', function(req, res){
request('http://mysafeinfo.com/api/data?list=englishmonarchs&format='+req.body.name, function (error, response, body) {
var data = JSON.parse(body);
console.log(req.body);
});
});


And make sure that in the form in your index file you should have <input type="text" name="name">
Because you are using as req.body.name






share|improve this answer





























    0














    app.use(express.urlencoded({
    extended: true
    }));

    app.post('/index', 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);
    });





    share|improve this answer





















      Your Answer






      StackExchange.ifUsing("editor", function () {
      StackExchange.using("externalEditor", function () {
      StackExchange.using("snippets", function () {
      StackExchange.snippets.init();
      });
      });
      }, "code-snippets");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "1"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53393557%2fcode-is-not-working-when-i-am-trying-to-edit-the-api-url-by-data-entered-in-form%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      1














      I think you have a problem with bodyParser.



      // parse application/x-www-form-urlencoded
      app.use(bodyParser.urlencoded({ extended: false }))

      // parse application/json
      app.use(bodyParser.json())


      Add these just after app.set('view engine', 'ejs');



      And your post function should be like this



           app.post('/', function(req, res){
      request('http://mysafeinfo.com/api/data?list=englishmonarchs&format='+req.body.name, function (error, response, body) {
      var data = JSON.parse(body);
      console.log(req.body);
      });
      });


      And make sure that in the form in your index file you should have <input type="text" name="name">
      Because you are using as req.body.name






      share|improve this answer


























        1














        I think you have a problem with bodyParser.



        // parse application/x-www-form-urlencoded
        app.use(bodyParser.urlencoded({ extended: false }))

        // parse application/json
        app.use(bodyParser.json())


        Add these just after app.set('view engine', 'ejs');



        And your post function should be like this



             app.post('/', function(req, res){
        request('http://mysafeinfo.com/api/data?list=englishmonarchs&format='+req.body.name, function (error, response, body) {
        var data = JSON.parse(body);
        console.log(req.body);
        });
        });


        And make sure that in the form in your index file you should have <input type="text" name="name">
        Because you are using as req.body.name






        share|improve this answer
























          1












          1








          1






          I think you have a problem with bodyParser.



          // parse application/x-www-form-urlencoded
          app.use(bodyParser.urlencoded({ extended: false }))

          // parse application/json
          app.use(bodyParser.json())


          Add these just after app.set('view engine', 'ejs');



          And your post function should be like this



               app.post('/', function(req, res){
          request('http://mysafeinfo.com/api/data?list=englishmonarchs&format='+req.body.name, function (error, response, body) {
          var data = JSON.parse(body);
          console.log(req.body);
          });
          });


          And make sure that in the form in your index file you should have <input type="text" name="name">
          Because you are using as req.body.name






          share|improve this answer












          I think you have a problem with bodyParser.



          // parse application/x-www-form-urlencoded
          app.use(bodyParser.urlencoded({ extended: false }))

          // parse application/json
          app.use(bodyParser.json())


          Add these just after app.set('view engine', 'ejs');



          And your post function should be like this



               app.post('/', function(req, res){
          request('http://mysafeinfo.com/api/data?list=englishmonarchs&format='+req.body.name, function (error, response, body) {
          var data = JSON.parse(body);
          console.log(req.body);
          });
          });


          And make sure that in the form in your index file you should have <input type="text" name="name">
          Because you are using as req.body.name







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 23 '18 at 7:27









          Nuriddin Kudratov

          737




          737

























              0














              app.use(express.urlencoded({
              extended: true
              }));

              app.post('/index', 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);
              });





              share|improve this answer


























                0














                app.use(express.urlencoded({
                extended: true
                }));

                app.post('/index', 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);
                });





                share|improve this answer
























                  0












                  0








                  0






                  app.use(express.urlencoded({
                  extended: true
                  }));

                  app.post('/index', 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);
                  });





                  share|improve this answer












                  app.use(express.urlencoded({
                  extended: true
                  }));

                  app.post('/index', 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);
                  });






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 20 '18 at 17:49









                  Raunik Singh

                  844




                  844






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.





                      Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                      Please pay close attention to the following guidance:


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53393557%2fcode-is-not-working-when-i-am-trying-to-edit-the-api-url-by-data-entered-in-form%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      "Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

                      Alcedinidae

                      Origin of the phrase “under your belt”?