angular2 Universal用于后端获取主机名

时间:2017-01-19 07:16:46

标签: angular universal

客户端

this._service.get('/api/user').subscribe(user => {

})

服务器

app.use('/api/user', function(req){
    console.log(req.hostname)  //always get localhost  

})

如果我的检查isBrowser没问题,可以获取主机名

if( isBrowser )
{
    this._service.get('/api/user').subscribe(user => {
        this.store.dispatch({ type: SETUSER, payload: user })
    })
}

如何在后端渲染获取主机名

2 个答案:

答案 0 :(得分:1)

修复server.ts

function ngApp(req, res) 
{
    res.render('index', 
    {
        req,
        res,
        preboot: false,
        baseUrl: '/',
        hostname: req.hostname,
        requestUrl: req.originalUrl,
        originUrl: `http://${req.hostname}:${ app.get('port') }`
    })
}

答案 1 :(得分:0)

如果您想获得主机名以及协议和其他详细信息,请使用下面的代码

app.use('/api/user', function(req){
    console.log(req.hostname)  //always get localhost  
    console.log(window.location.protocol + "//" + window.location.host);
    //output of the above line will be (https://stackoverflow.com)
})