如何从快速应用程序的服务器端发送GET请求查询的响应?

时间:2017-08-05 21:56:17

标签: javascript node.js postgresql express

我正在使用对postgres数据库的查询将结果存储在Express应用程序服务器端的GET请求中的变量中。

当我在psql中运行时,我的查询返回我正在寻找的issueID,但是我很难将响应存储在变量中,因此我可以将响应发送到客户端。

我的代码如下所示:

const pg = require('pg');
const connection = 'postgres://aa2:aa2@localhost:5432/bugtrackingdb';

const client = new pg.Client(connection) ;
client.connect();

    app.get('/tracking', function(req, res) {
    var sql = "SELECT bugtracking.issues.issueID FROM bugtracking.issues WHERE bugtracking.issues.issueID = (SELECT MAX(bugtracking.issues.issueID) FROM bugtracking.issues);"
    var issueID;

    client.query(sql, function(err, result) {
        if (err){
            console.log("error in tracking");
        }

        issueID = JSON.stringify(result.rows[0]);

        console.log("Tracking Result" + issueID);


        //GET results
        res.json(res.statusCode);
        // res.json(issueID);
        console.log("Selected Bug Tracking IssueID. Status Code: " + res.statusCode);
    });
});

如何从查询中获取数据以将数据存储在issueID变量中以将其发送到我的应用程序的客户端?

我也在使用body-parser。

修改 它几乎就像查询甚至没有执行一样,因为我无法打开我的console.log语句。这是我的前端代码,有助于更好地理解:

$(window).load(function() {

    $.ajax({
        type: 'GET',
        url: 'http://139.169.63.170:' + port + '/tracking',
        dataType: 'json',
        cache: true,    

        success: function (data) {

            console.log("DEBUG DONE WITH CAPTURING tacking#: " + data);

            if (data === Number(200)) {
                issueID = issueID + 1;
                $(".trackingID").val(issueID);
            }

        }
    });
    console.log("Window loads & Ajax runs???");
});

第二次编辑:

以下是在psql中运行查询的结果。我想要得到数字' 33'从我的获取请求返回:

bugtrackingdb=# SELECT bugtracking.issues.issueID FROM bugtracking.issues WHERE bugtracking.issues.issueID = (SELECT MAX(bugtracking.issues.issueID) FROM bugtracking.issues); 

issueid 
---------
      33
(1 row)

稍后更改这是我从后端console.log语句打印的内容:

Tracking Result: [object Object]
Selected Bug Tracking IssueID. Status Code: 304

编辑(越来越近):

我从查询返回的对象中对result.rows [0]进行了字符串化。我现在能够将结果打印到服务器端console.log,这给了我以下结果:

Tracking Result: {"issueid":"37"}
Selected Bug Tracking IssueID. Status Code: 304
status: 200

但是,当我取消注释行res.json(issueID)时,我收到错误。

如何将我的JSON对象发送回客户端,以便我可以根据需要显示它?

1 个答案:

答案 0 :(得分:1)

<TouchableOpacity 
      onPress={() => this.openMap() }
      style={styles.navigateBtn}>
        <Icon name="md-navigate" style={{ fontSize: 24 }} />
        <Text
          style={{ fontSize: 13, fontWeight: "700", lineHeight: 14 }}
        >