Node.js 循环遍历节点js中的一组结果

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('

我有一个查询,它返回节点控制器中的结果集数组。现在我想循环遍历结果,我需要为每个结果集调用不同的函数。如何在Node中实现这一点

我是节点中的新蜜蜂,无法找到解决方案

下面是我的路由器文件:

/*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,您计划在每行执行的函数中做什么工作?