試圖檢索JSON數據會導致[Promise{<pending>},Promise{<pending>}]

我試圖檢索存儲在以下API中的JSON數據:

https://api.hatchways.io/assessment/blog/posts

通過使用node.js和https請求,我不斷收到一個[Promise{},Promise{}]數組。不幸的是,我一次只能搜索一個標簽,在對帖子進行排序之前,我必須從提供的標簽列表中檢索至少有一個標簽的帖子列表。我的代碼如下:

const express = require('express');
const app = express();

app.get("/api/ping", (req, res) => {
    res.status(200).send("{\"success\": true}");
})

app.get("/api/posts", (req, res) => {
    const tags = req.query.tags;
    const sortBy = req.query.sortBy;
    const direction = req.query.direction;

    if (!tags) res.status(400).send("Must provide at least one tag.");
    let tag_array = tags.split(',');
    let posts_array = [];
    tag_array.forEach(tag => {
        let posts = getPost(tag);
        posts_array.push(posts);
    })
    
    console.log(posts_array);
})

app.listen(3000, () => console.log("Listening on port 3000..."));

function getPost(tag) {
    const https = require('https');

    return new Promise( (resolve, reject) => {
        const options = {
            hostname: 'api.hatchways.io',
            path: `/assessment/blog/posts?tag=${tag}`
        }
    
        let body = [];

        const req = https.request(options, res => {
            res.on('data', data => {
                body.push(data);
            });

            res.on('end', () => {
                try {
                    body = JSON.parse(Buffer.concat(body).toString());
                } catch (error) {
                    reject(error);
                }
                resolve(body);
            });
        });
    
        req.on('error', error => {
            reject(error);
        });
    
        req.end();
    }).then(function(data) { return data; }, function(error) { console.log(error) });
}
? 最佳回答:

getPost方法返回一個承諾,只需執行以下操作:

app.get("/api/posts", async (req, res) => {
const tags = req.query.tags;
const sortBy = req.query.sortBy;
const direction = req.query.direction;

if (!tags) res.status(400).send("Must provide at least one tag.");
let tag_array = tags.split(',');
const promises = [];
tag_array.forEach(tag => {
    promises.push(getPost(tag))
});
posts_array = await Promise.all(promises)
console.log(posts_array) 
})

主站蜘蛛池模板: 国产产一区二区三区久久毛片国语| 人妻无码一区二区不卡无码av | 精品国产一区二区三区av片| 精品国产一区二区22| 久久无码AV一区二区三区| 久久精品一区二区影院| 国模极品一区二区三区| 久久久精品人妻一区二区三区四| 三上悠亚日韩精品一区在线 | 精品亚洲AV无码一区二区三区| 一区二区在线视频免费观看| 亚洲综合在线一区二区三区| 蜜桃臀无码内射一区二区三区| 狠狠色成人一区二区三区| 国产福利电影一区二区三区,免费久久久久久久精 | 免费无码A片一区二三区| 久久人做人爽一区二区三区| 亚洲av鲁丝一区二区三区| 免费萌白酱国产一区二区三区| 亚洲性日韩精品一区二区三区| 国产在线观看一区二区三区四区 | 亚洲AV无码一区二区三区系列| 国产精品小黄鸭一区二区三区| 精品在线一区二区三区| 蜜桃视频一区二区| 男人的天堂精品国产一区| 一区二区三区午夜| 成人一区二区免费视频| 中文字幕aⅴ人妻一区二区| 一本大道东京热无码一区| 国产亚洲一区二区在线观看| 美女一区二区三区| 亚洲一区免费在线观看| 亚洲熟妇AV一区二区三区浪潮| 亚洲AV一区二区三区四区| 国产成人综合亚洲一区| 国产精品被窝福利一区 | 鲁丝丝国产一区二区| 欧洲精品码一区二区三区免费看| 精品3d动漫视频一区在线观看| 精品视频一区二区三区|