gpt4 book ai didi

javascript - 如何使用 Promise 链接 Postgres 查询,然后在 NodeJS 中获取请求

转载 作者:行者123 更新时间:2023-12-03 06:07:26 26 4
gpt4 key购买 nike

在我的 NodeJS 应用程序中,我需要向 Postgres 进行查询,然后需要对 PG 结果中的每一行发出 GET 请求。并以数组形式返回所有 GET 结果。

我的代码有什么问题吗?

var promise = require('bluebird');
var pgp = require('pg-promise')({ promiseLib: promise });
var db = pgp(connectionString);
var rp = require('request-promise');

var query = 'select id from my_table';

var processIDs = pgResults => {
var requests = pgResults.map( row => rp(`mysite.com/${row.id}`) );
return promise.all(requests);
}

db.any(query)
.then(processIDs)
.then( results => console.log(results) );

第二个问题,如何将PG查询的ID包含在最终结果数组中?

最佳答案

将 PG 查询中的 ID 包含在最终结果中的一种方法是在 processIDs 调用中添加另一个 Promise,如下所示:

var processIDs = (result) => {
var ids = result.map(row => row.id);
var requests = ids.map(id => request(`mysite.com/${id}`));
return promise.all(requests)
.then(results => {
// not sure how u want to include `ids` in results, but its available in this scope
// just think that it's weird, cuz `results` is supposed to be
// an array of HTTP responses, right?
return results; // results.concat(ids) || results.push(ids)
});
}

关于javascript - 如何使用 Promise 链接 Postgres 查询,然后在 NodeJS 中获取请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39476801/

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