目前正在处理 Node Rest api 项目,我想在其中获取数据列表的数据。例如:我有一个特定标签(移动)的 post_id([1,2,3....]) 列表,对于每个 post_id 我想从 mysql 数据库检索帖子标题和描述。但调用sql查询是同步的。
如何控制每个帖子 ID 结果合并为一个的流程。
我的数据库调用代码在这里:
var express = require('express');
var app = express();
var bodyParser = require('body-parser'); // call body-parser
var addData = require('./dbhandler/addData'); // call database handler to insertdata
var getData = require('./dbhandler/getData');
//route function to get feeds by tags
router.route('/postfeedsbytags/:tag')
// get all new article feeds filtered by tag
.get(function(req,res){
var success;
console.log(req.params.tag)
var json_results = [];
getData.getPostFeedsByTag(req.params.tag,function(error, results, fields){
if (!error){
for (var i = 0; i < results.length; i++) {
getData.getPostFeedsByPostId(results[0]['post_id'],function(error, results, fields){
if (!error){
success = 1;
json_results.push(results[0]);
res.json({"success" : success, "datasets" : json_results});
} else{
success = 0;
console.log('Error while performing Query.'+error);
res.json({"success" : success});
}
});
}
// res.json({"success" : success, "datasets" : results});
} else{
success = 0;
console.log('Error while performing Query.'+error);
res.json({"success" : success});
}
});
});
最佳答案
我认为您可以在查询中使用 IN 运算符来获取单个查询中的所有帖子,然后对其进行迭代。
如果您不想使用 IN 运算符,则使用 async流控制库。您可以使用其中的 async.map 函数。
关于mysql - 同步调用sql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42112834/