从角速度为2的快速服务器获取数据

时间:2016-06-02 08:35:24

标签: javascript express angular

我正在尝试用角度2构建一个小的facebook登录但是我遇到了问题,在登录facebook后,用户将被重定向到/ home

app.get('/home', function (req, res) {
    res.sendfile(path.join(__dirname, '../', 'views', 'index.html'), { user: req.user});
    console.log({ user: req.user});
});

我正在尝试在angular2页面中显示用户信息,但我一直未定义。控制台记录对象工作正常。

我使用res.render对ejs文件使用了相同的方法 并在ejs中使用它

<%= user.facebook.name %>

它工作正常。我尝试在角度2中使用{{}}但不起作用。 有什么帮助吗?

感谢

2 个答案:

答案 0 :(得分:0)

我会在引导你的应用程序时定义这个元素。由于此提示仅在index.html页面中提供,因此我将使用以下处理。

更新引导您的应用程序的文件:

import {bootstrap} from '...';
import {provide} from '...';
import {AppComponent} from '...';

export function main(facebookUser) {
  bootstrap(AppComponent, [
    provide('user', { useValue: facebookUser })
  ]);
}

以这种方式从index.html文件中提供此值:

<script>
  var facebookUser = '<%= user.facebook.name %>';
  System.import('app/main').then((module) => {
    module.main(facebookUser);
  });
</script>

这个问题可能让你感兴趣:

答案 1 :(得分:0)

好的谢谢你的回复我找到了我的问题的答案。此代码将调用api并获取用户详细信息

constructor(private http: Http) { }

ngOnInit() {
    this.getUser();
}

getUser() {
    this.http.get('/api/user')
        .map((res:Response) => res.json())
        .do(data => console.log('data: ' + JSON.stringify(data)))
        .subscribe(
            data => { this.user = data.user.facebook.name},
            err => console.error(err),
            () => console.log('done')
        );

}