【问题标题】:Nodejs & Express: How to redirect to another website and not to a route in the site?Nodejs & Express:如何重定向到另一个网站而不是网站中的路由?
【发布时间】:2018-04-27 12:28:06
【问题描述】:

我正在尝试创建一个将您重定向到另一个网站的功能,但不是重定向到另一个网站,而是假设我要重定向到的网络链接是我网站中的一条路线。

    app.get('/:shorturl', (req, res) => {
    UrlShort.findOne({'ShortUrl': req.param('shorturl')}, (err, doc) => {
        if(err) return res.send('Error Reading Database!');
        var re = new RegExp("$(http|https)://", "i");
        if(re.test(doc.OriginalUrl)){
            res.redirect(301, doc.OriginalUrl);
        } else {
            res.redirect(301, 'http://' + doc.OriginalUrl);
        }
     });
   });

它不会重定向到另一个网站,而是重定向到这个:

http://localhost:3000/www.google.com

【问题讨论】:

    标签: node.js express redirect routes


    【解决方案1】:

    您的问题不是重定向功能。这似乎是真的。但是您的正则表达式是错误的。您需要将您的正则表达式更改为

    ^(http|https)://
    

    这是我测试过的工作代码示例:

    app.get("/redirect", function(req, res) {
    var url = "http://www.google.com";
    
    var re = new RegExp("^(http|https)://", "i");
    if(re.test(url)){
        console.log("#LOG1", url);
        res.redirect(301, url);
    } else {
        console.log("#LOG2", 'http://' + url);
        res.redirect(301, 'http://' + url);
    }});
    

    【讨论】:

    • 我已经编辑了添加代码示例的答案。 @WackThat
    猜你喜欢
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 2021-10-28
    • 2020-12-24
    • 2021-11-19
    相关资源
    最近更新 更多