gpt4 book ai didi

node.js - 循环遍历node js中的结果集

转载 作者:太空宇宙 更新时间:2023-11-03 23:15:19 26 4
gpt4 key购买 nike

我有一个查询,它返回 Node Controller 中的结果集数组。现在我想循环遍历结果,并且需要为每个结果集调用不同的函数。我怎样才能在 Node 中实现这一点。

我是 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;

下面是我的 Controller :

/*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 ,非常容易实现。在循环内,您可以根据结果编写业务逻辑。

这里是文档链接:https://caolan.github.io/async/docs.html#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;

关于node.js - 循环遍历node js中的结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56170911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com