Meteor / Iron Router 外部重定向

Meteor / Iron Router external redirection

所以我正在创建一个基本的虚荣 URL 系统,我可以在其中 http://myURL.com/v/some-text,从数据库中获取一个项目并根据是否或重定向到特定的 URL不是客户端是mobile/desktop和其他功能。

我通常构建 Facebook 应用程序,因此在桌面的情况下,它们将被重定向到 Facebook URL,否则在移动设备上我可以使用普通路由。

有没有办法从服务器端的 Iron Router 重定向到外部网站?

this.route('vanity',{
    path: '/v/:vanity',
    data: function(){
        var vanity = Vanity.findOne({slug:this.params.vanity});

        // mobile / desktop detection

        if(vanity){
            if(mobile){
                // Redirect to vanity mobile link
            }else{
                // Redirect to vanity desktop link
            }
        }else{
            Router.go('/');
        }
    }
});

这是一个使用服务器端路由的简单的基于 302 的重定向:

Router.route('/google/:search', {where: 'server'}).get(function() {
  this.response.writeHead(302, {
    'Location': "https://www.google.com/#q=" + this.params.search
  });
  this.response.end();
});

如果您导航到 http://localhost:3000/google/dogs, you should be redirected to https://www.google.com/#q=dogs

请注意,如果您想用 302 响应 all 请求动词(GET、POST、PUT、HEAD 等),您可以这样写像这样:

Router.route('/google/:search', function() {
  this.response.writeHead(302, {
    'Location': "https://www.google.com/#q=" + this.params.search
  });
  this.response.end();
}, {where: 'server'});

如果您出于 SEO 目的进行重定向,这可能就是您想要的。