我在这里面临一个巨大的问题,而且我不知道如何解决它:
我使用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")
答案 0 :(得分:0)
所以是的,你们是对的。我没有正确处理异步请求的概念,我的整个概念是错误的。现在我用observable重建项目并且它正在运行。
谢谢大家!