嗨,我正在进行NodeJS练习,我想让输入以(网站(.com/results/NameOfCountry的形式出现在url上,其中NameOfCountry是一个包含用户输入的变量。在尝试了path.dirname((之后,我不知道该怎么做,我认为这是不对的。
每次我输入国家/地区名称时,它都会显示一个链接,结尾类似于/results?searchCountry=美国和我想摆脱?searchCountry,因为正确的路径有一个类似/results/America 的结尾
有人能帮我吗?提前谢谢。
这是代码NodeJS:
var express = require("express");
var haste = express();
var bp = require("body-parser");
var request = require("request");
var mime=require('mime-types');
haste.set("view engine", "ejs");
haste.get("/", function(req, res){
res.render("search");
})
haste.get("/results", function(req, res){
var apple = "https://api.covid19api.com/total/country/" + query;
var query = req.you.value;
request(apple, function(error, response, require){
if(!error && response.statusCode == 200){
var data = JSON.parse();
res.render("info", {data:data});
}
})
})
haste.listen(process.env.PORT || 3000, process.env.IP, function(){
console.log("Server has started!");
});
在EJS上,输入表单是这样的:
<h1>
Find Cases By Country:
</h1>
<form action="/results" method="GET">
<input type="text" placeholder="enter country" class="you">
<input type="submit">
</form>
如果你指的是路由参数,那么它有点像
haste.get("/results/:NameOfCountry", function(req, res){ ....}
其中路由/路径参数以CCD_ 1为前缀。然后您可以通过req.params
访问:NameOfCounty
以根据需要使用
如果我理解正确,您希望为每个搜索结果而不是查询使用自定义路径。您可以使用express中的参数来实现这一点。
基本的获取路线如下所示:
app.get("/results/:search", function(req, res){
var parameter = req.params.search;
//send your custom response here
}
参数变量包含/results/之后的字符串