无法使用带有节点的express使用res.send()发送数字 [英] Unable to send numbers using res.send() using express with node

查看:370
本文介绍了无法使用带有节点的express使用res.send()发送数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在节点中使用express获得imdb评级,我正在努力。

I am trying to get the "imdb rating" using express in node and I am struggling.

movies.json

[{
"id": "3962210",
"order": [4.361276149749756, 1988],
"fields": {
    "year": 2015,
    "title": "David and Goliath",
    "director": "Timothy A. Chey"
},
"doc": {
    "_id": "3962210",
    "_rev": "1-ac648e016b0def40382d5d1b9ec33661",
    "title": "David and Goliath",
    "year": 2015,
    "rating": "PG",
    "runtime": "92 min",
    "genre": ["Drama"],
    "director": "Timothy A. Chey",
    "writer": ["Timothy A. Chey"],
    "cast": ["Miles Sloman", "Jerry Sokolosky", "Makenna Guyler", "Paul Hughes"],
    "poster": "http://ia.media-imdb.com/images/M/MV5BMjA3OTQ4NDc4MV5BMl5BanBnXkFtZTgwNDYwMzA1MjE@._V1_SX300.jpg",
    "imdb": {
        "rating": 8.4,
        "votes": 138,
        "id": "tt3962210"
    }
}
}, {
"id": "251656",
"order": [3.489020824432373, 686],
"fields": {
    "year": 1999,
    "title": "David Cross: The Pride Is Back",
    "director": "Troy Miller"
},
"doc": {
    "_id": "251656",
    "_rev": "1-2d0762776874f94af8f2d76e5991b529",
    "title": "David Cross: The Pride Is Back",
    "year": 1999,
    "rating": null,
    "runtime": "55 min",
    "genre": ["Comedy"],
    "director": "Troy Miller",
    "writer": ["David Cross"],
    "cast": ["David Cross", "Molly Brenner", "Amiira Ruotola"],
    "poster": "http://ia.media-imdb.com/images/M/MV5BODcwMjMxOTU4OF5BMl5BanBnXkFtZTgwODE0MTc4MTE@._V1_SX300.jpg",
    "imdb": {
        "rating": 7.9,
        "votes": 380,
        "id": "tt0251656"
    }
}
}]

结果

res.send(result.rows [0] .doc .imdb); 返回 {评分 :8.4,投票:138,id:tt3962210}

但是

res.send(result.rows [0] .doc.imdb.rating); //不返回8.4,只是崩溃的节点

res.send(result.rows[0].doc.imdb.rating); // does not return 8.4, just crash's node

res.send(result.rows [0] .doc.title); //返回David和Goliath

res.send(result.rows[0].doc.title); // returns David and Goliath

res.send(result.rows [0] .doc.cast [0] ); //返回Miles Sloman

res.send(result.rows[0].doc.cast[0]); // returns Miles Sloman

我哪里错了?

推荐答案

根据 Express res。 send([body]) docs:

According to Express res.send([body]) docs:


body参数可以是Buffer对象,字符串,对象或数组

The body parameter can be a Buffer object, a String, an object, or an Array

您不能单独发送数字。

尝试将数字转换为字符串

Try either converting the number to a string

res.send(''+result.rows[0].doc.imdb.rating);

或将其作为对象值发送

res.send({ result: result.rows[0].doc.imdb.rating});

这篇关于无法使用带有节点的express使用res.send()发送数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆