2016-03-07 177 views
5

我使用yeoman angular-fullstack生成我的项目。 所以客户端是angularJs(typeScript),后端是nodeJs。 问题是我有一个变量,当我打印到控制台时,我得到一个很长的字符串,(如果你需要知道它从googleplacesapi的photo_reference)。 当我将它传递给带有http.get的nodeJS api,并将其打印到日志中时,我得到响应Object对象。从客户端传递到nodeJS时,字符串转向对象

MainController

for (var photo of response.data.result.photos) { 
     this.getImages(photo); 
     console.log(photo.photo_reference); 
    } 
    getImages(photo_reference: string): void{ 
    this.$http.get('/api/image/' + photo_reference).then((response) => { 

    }); 
    } 

的NodeJS

export function show(req, res) { 

    console.log("photoreference:" + req.params.photoreference); 
+1

@mmm好像打字稿 – eltonkamami

+0

出于好奇(不是溶液) ,如果你显式转换为字符串,它是否工作? – ale10ander

+0

记录参数,而不将它连接到一个字符串以查看传入的值'console.log(req.params.photoreference);' – eltonkamami

回答

3

您将错误的值传递给getImages函数。 由于传递给getImages参数具有photo_reference属性它是一个对象,以便记录是正确

传递photo.photo_reference给函数

for (var photo of response.data.result.photos) { 
    this.getImages(photo.photo_reference); 
} 
+0

谢谢,现在这是一个愚蠢的misstake。我在谴责这个晚上的时间。 :P –

+0

@JediSchmedi第二双眼睛总是帮助:) – eltonkamami

3

console.log将调用在传递给它的任何对象.toString()。对于普通ObjectstoString()的默认实现是返回"[Object object]",这是愚蠢的,但也很通用。

如果你想看到完整结构的对象,stringify它:

console.log(JSON.stringify(req.params.photoreference)); 

你可以问JSON.stringify来呈现人类可读的版本,使用2个空格进行缩进:

console.log(JSON.stringify(req.params.photoreference, null, 2)) 
相关问题