skip to Main Content

I am trying to take input from user and sending them to the URL which they typed in.

By concatenating it with url = "http://localhost:3000/"+"/:userInput"

First I tried to take input from user and created a link using DOM method

<script>
function myFunction() {
  var x = document.getElementById("newLis").value;
  document.getElementById("btn").href ='/' + x;
 console.dir(x);
}
</script>

And tried to attach it to link href, but it didn’t work.

Second, I tried to access the input value through post route
and tried to directly send it in

app.get("/:pathName",(req,res)=>{
const pathName = _.capitalize(req.params.pathName);



//console.log(Array.isArray(pathName));
List.findOne({name : pathName}, (error, results)=>{

  if (!error){
    if(!results){
  //prompt("Hello! I am an alert box!");
     const list = new List({
     name : pathName,
     items : def
        })
     list.save();
     List.aggregate();
     res.redirect('/' + pathName);
  }else {
    res.render("list", {listTitle: results.name, newListItems: results.items});
      }
  }
});
});

But I don’t know how it works.

2

Answers


  1. id of "newLis" and then set the href attribute of an element with an id of "btn" to the value of the user input with "/" appended to the beginning.

    Login or Signup to reply.
  2. In post request get the value of the URL typed by the user using req.body.name. Concatenate the strings to get the full path and then redirect the user to the path

    app.post("/yourpath",(req,res)=>
    {
      const path= "/"+req.body.name;
      res.redirect("path");
    }
    

    Here name is value of name attribute in input tag.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search