{ if (authen-6ren">
gpt4 book ai didi

javascript - 如何在nodejs中使用express get route从url中提取页面名称和authToken?

转载 作者:行者123 更新时间:2023-12-03 12:14:45 27 4
gpt4 key购买 nike

我有这样的网址:http://localhost:3000/pageName我正在设置我的快速路线,如下所示:

app.get("/:pageName",(req,res)=>{
if (authentication === true) {
res.render(req.param.pageName}
})
当它得到 http://localhost:3000/demo 时,上面的工作正常。 .
但是,当它获得这种类型的 URL 时: http://localhost:3000/pageName/authToken喜欢: http://localhost:3000/demo/ubawfei346876jhat78gw8898ig8837yrRoute 说无法获取 demo/ubawfei346876jhat78gw8898ig8837yr当我将上面的代码更改为:
app.get("/:pageName/: authToken",(req,res) => { 
if(authentication===true{
res.render(req.param.pageName}
)}
然后这种类型的 url 工作正常: http://localhost:3000/demo/ubawfei346876jhat78gw8898ig8837yr但是这种类型的 URL: http://localhost:3000/demo不再工作了
当 url 是这样的时候,我想实现这样的东西 http://localhost:3000/demo那么它应该重定向到: req.params.pageName当 url 看起来像这样 http://localhost:3000/demo/yeieyhsi736hdh那么它应该在 varified 重定向到时 varify token: req.params.pageName

最佳答案

您可以实现这两个路由,如果 authToken提供,然后检查 authToken .
但是,您现在执行此操作的方式会导致无休止的重定向,就像对您的 /:pageName 的任何请求一样。已制作,它将被重定向到自身,因此您需要提供 response使用 route 的内容,而不是 redirect .

app.get("/:pageName", (req, res) => {
if (authentication) {
let pageName = req.params.pageName;
//Retrieve something with pageName and send it;
res.send(pageName);
} else {
res.send("Not authorised");
}
})

app.get("/:pageName/:authToken", (req, res) => {
let authToken = req.params.authToken;
if (isGood(authToken) && authentication) { //Fictious authToken check
let pageName = req.params.pageName;
//Retrieve something with pageName and send it;
res.send(pageName);
} else {
res.send("Not authorised");
}
})

关于javascript - 如何在nodejs中使用express get route从url中提取页面名称和authToken?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66528459/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com