从nodejs中的mysql查询返回数组

时间:2017-03-14 11:39:13

标签: mysql node.js express

我在这里面临一个巨大的问题,而且我不知道如何解决它:

我使用express:

在node.js中有一个简单的路由(有效)
public static create(router: Router, basePath: string) {
    console.log("[SearchRoute::create] Creating routes for /search.");
    // call the function for retrieving the address book results
    router.get(basePath + "/search/:searchString",
        function (req, res, next) {
            console.log(searchUser(req.params.searchString));
        }
    );
}

我的searchUser函数只有一个简单的查询:

function searchUser(searchString) {
    console.log("searchUser Function executed.");
    return myMYSQL.connection.query('SELECT XXX FROM XXX WHERE ?',[searchString],
        function (error, results) {
            if (error) throw error;
            return (results);
        }
    );
}

我面临的问题是:

searchUser中,查询结果给了我2个对象。

但是在路线(第一个功能)中,它只会在结果的值索引中打印一个结果。

我认为在返回searchUser函数时出现了错误,我错误地将其返回错误并丢失了某些内容。

非常感谢大家的帮助!

修改

可能是我没有以一种好的方式解释它,第二个功能,打印出2个对象,但第一个只有一个...我甚至不知道如何解释它,但我们走了:

function searchUser(searchString) {
    console.log("searchUser Function executed.");
    return myMYSQL.connection.query('SELECT XXX FROM XXX WHERE ?',[searchString],
        function (error, results) {
            if (error) throw error;

            // Here is returning me 2 objects, i show the response below
            console.log (results);
            return (results);
        }
    );
}

的console.log:

0|call-ser | 2017-03-14 12:29:30 +01:00: [ RowDataPacket {
0|call-ser |     pbe_firstname: 'Axel',
0|call-ser |     pbe_lastname: 'Braun'},
0|call-ser |   RowDataPacket {
0|call-ser |     pbe_firstname: 'Axel2',
0|call-ser |     pbe_lastname: 'Braun2'} ]

当我打电话给路线时:

    public static create(router: Router, basePath: string) {
    console.log("[SearchRoute::create] Creating routes for /search.");
    // call the function for retrieving the address book results
    router.get(basePath + "/search/:searchString",
    function (req, res, next) {
    console.log(searchUser(req.params.searchString));
    }
    );
    }

的console.log: 在.values索引中:

values: [ 'Braun' ]

(不是第二个" braun")

1 个答案:

答案 0 :(得分:0)

所以是的,你们是对的。我没有正确处理异步请求的概念,我的整个概念是错误的。现在我用observable重建项目并且它正在运行。

谢谢大家!