最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

ExpressJS:如何将数据发送到URL

运维笔记admin12浏览0评论

ExpressJS:如何将数据发送到URL

ExpressJS:如何将数据发送到URL

我有一个帖子请求,你可以看到它重定向到一个新的路由

 //POST login 
 app.post('/login', urlencodedParser, function(req,res){
    userLogin(req.body, function(response){
        if(response == true){
            //Activate player login in db
            loginPlayerDB(req.body.username);
            getPlayerId(req.body.username, function(id){
                res.redirect(req.baseUrl + '/:id/profile');
            });
        } else{
            res.send(500, "Username or Password is incorrect");
        }
    })
});

调用此函数

 function getPlayerId(username, callback){
    let sql = "SELECT PlayerId FROM users WHERE Username = (?)";
    var values = [username];
    db.query(sql, values, function(err, result, fields){
        if(err){
            console.log(err);
        } else{
               return callback(result);
        }
    })
}

它重定向到这条路线

app.get('/:id/profile', function(req,res){
    res.render('profile/profile');
})

一切都很好,除了新页面上的URL

http://localhost:3000/:id/profile

什么时候应该是这样的

http://localhost:3000/6/profile

如果玩家的ID为6.我该如何解决这个问题

//解。

感谢MadWard的帮助。我的错误是在我的getPlayerId函数中,我返回结果,这是一个数组,而不是结果[0] .PlayerId,以获取我正在寻找的特定ID

回答如下:

你实际上是重定向到/:id/profile。这是一个字符串,它是固定的,并且始终是'/:id / profile'。

你要做的是使用模板字符串:

        getPlayerId(req.body.username, function(id){
            res.redirect(`${req.baseUrl}/${id}/profile`);
        });

使用正常的字符串连接,就像你正在做的那样:

        getPlayerId(req.body.username, function(id){
            res.redirect(req.baseUrl + '/' + id + '/profile');
        });
发布评论

评论列表(0)

  1. 暂无评论