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
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.
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 pathHere name is value of name attribute in input tag.