Node.js 循环遍历节点js中的一组结果
我有一个查询,它返回节点控制器中的结果集数组。现在我想循环遍历结果,我需要为每个结果集调用不同的函数。如何在Node中实现这一点 我是节点中的新蜜蜂,无法找到解决方案 下面是我的路由器文件:Node.js 循环遍历节点js中的一组结果,node.js,oracle,Node.js,Oracle,我有一个查询,它返回节点控制器中的结果集数组。现在我想循环遍历结果,我需要为每个结果集调用不同的函数。如何在Node中实现这一点 我是节点中的新蜜蜂,无法找到解决方案 下面是我的路由器文件: /*jslint node:true*/ var express = require('express'); var session = require('express-session'); var router = express.Router(); var bodyParser = require('
/*jslint node:true*/
var express = require('express');
var session = require('express-session');
var router = express.Router();
var bodyParser = require('body-parser');
const mgrDataCtrl = require('../controllers/mgrDataCtrl');
router.use(session());
// Use body parser to parse JSON body
router.use(bodyParser.json());
// Http Method: GET
router.route('/mgrData/').get(mgrDataCtrl.getMgrData);
module.exports = router;
下面是我的控制器:
/*jslint node:true*/
var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
const database = require('../services/database.js');
// Import events module
var events = require('events');
// Use body parser to parse JSON body
router.use(bodyParser.json());
//Function to get Manager data from youCoach DB
async function getMgrData(req,res,next){
try{
/*Get total items*/
const presult = await database.simpleExecute(`SELECT a.username, a.id, a.email, a.dept_id, b.deptno, b.dept_name from emp a LEFT JOIN dept b ON a.dept_id = b.id`);
const prows = presult.rows;
console.log("Rows ="+prows);
res.json(prows);
**// Here I want to write a for loop for above result and call a different function for each row.**
} catch (err) {
console.log("Error ===="+err);
next(err);
}
};
module.exports.getMgrData = getMgrData;
提前感谢..您可以使用异步js循环并管理代码的执行。对于数据结果循环,您可以使用async.js中的
async.eachOf
,这非常容易实现。在循环中,您可以根据结果编写业务逻辑
以下是文件链接:
检查下面的async的代码实现。eachOf
希望这对您有所帮助
/*jslint node:true*/
var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
const database = require('../services/database.js');
// Import events module
var events = require('events');
var async = require("async");
// Use body parser to parse JSON body
router.use(bodyParser.json());
//Function to get Manager data from youCoach DB
async function getMgrData(req,res,next){
try{
/*Get total items*/
const presult = await database.simpleExecute(`SELECT a.username, a.id, a.email, a.dept_id, b.deptno, b.dept_name from emp a LEFT JOIN dept b ON a.dept_id = b.id`);
const prows = presult.rows;
let finalResult = [];
async.eachOf(prows, function(prow, key, eachCallBack) {
finalResult[key] = // output;
eachCallBack();
}, function(err, result){
if(err) {
console.log("Error ===="+err);
next(err);
} else {
res.json(finalResult);
}
})
} catch (err) {
console.log("Error ===="+err);
next(err);
}
};
module.exports.getMgrData = getMgrData;
我要试一试。谢谢@chintanHi Sony,您计划在每行执行的函数中做什么工作?