从客户端传递到nodeJS

时间:2016-03-07 21:54:12

标签: javascript angularjs node.js typescript

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

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);

2 个答案:

答案 0 :(得分:3)

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

如果您想查看对象的完整结构,stringify它:

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

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

console.log(JSON.stringify(req.params.photoreference, null, 2))

答案 1 :(得分:3)

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

photo.photo_reference传递给函数

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