簡體   English   中英

Node.js Express.js MonGoose 處理數據

[英]Node.js Express.js MonGoose handling data

我在處理從 API 獲取的數據時遇到問題,它只給了我 null 並且它不會等待,盡管我已經異步/等待了函數。

我想要實現的是從第一個 URL 獲取數據,然后根據我從第一個響應中獲得的結果從其他 URL 獲取數據。 當我控制台記錄它時,我有一組對象。

我做錯了什么?

親切的問候

exports.sudRegList = [
    async (req, res) => {
        try {
            let response = await axios.get("https://url.com/?offset=0&limit=20",
                {
                    headers: {"Key": "5"}
                });

            response.data.map(async subject =>
            {
                let check = await Subjekti.findOne({ mbs: subject.mbs });
                if (null !== check) {
                    return console.log("imamo takvu tvrtku");
                }
                let companyDetails = await axios.get(`https://url.com=${subject.mbs}&expand_relations=true`,
                    {
                        headers: {"Key": "5"}
                    });

                await Subjekti({
                    mbs: subject.mbs,
                    sud_id_nadlezan: subject.sud_id_nadlezan,
                    sud_id_sluzba: subject.sud_id_sluzba,
                    oib: subject.oib,
                    ino_podruznica: subject.ino_podruznica,
                    stecajna_masa: subject.stecajna_masa,
                    datum_osnivanja: subject.datum_osnivanja,
                    postupak: subject.postupak,
                    likvidacijska_masa: subject.likvidacijska_masa,
                    skracene_tvrtke: companyDetails.skracene_tvrtke && companyDetails.skracene_tvrtke.length > 0 ? companyDetails.skracene_tvrtke[0].ime : null
                }).save();

            });

            return apiResponse.successResponseWithData(
                res,
                "Tvrtka uspješno dodana."
            );

        } catch (err) {
            //Baci error 500...
            return apiResponse.ErrorResponse(res, err);
        }
    }
];

您正在混合 Async/Awit 和 Promises。 像下面這樣使用異步等待。

    exports.sudRegList = [
    (req, res) => {
      try {
        let response = await axios
          .get("https://link.com", {
            headers: { Key: "5" }
          })

          response.data.map(subject => {
            
            let subject = await Subjekti.findOne({ mbs: subject.mbs })

            let companyDetails = await axios
            .get(`https://link.com=${subject.mbs}&expand_relations=true`, {
              headers: { Key: "5" }
            })

            await Subjekti({
              mbs: subject.mbs,
              sud_id_nadlezan: subject.sud_id_nadlezan,
              sud_id_sluzba: subject.sud_id_sluzba,
              oib: subject.oib,
              ino_podruznica: subject.ino_podruznica,
              stecajna_masa: subject.stecajna_masa,
              datum_osnivanja: subject.datum_osnivanja,
              postupak: subject.postupak,
              likvidacijska_masa: subject.likvidacijska_masa,
              skracene_tvrtke:
                companyDetails.skracene_tvrtke &&
                companyDetails.skracene_tvrtke.length > 0
                  ? companyDetails.skracene_tvrtke[0].ime
                  : null
            }).save();
            
          });

          return apiResponse.successResponseWithData(
            res,
            "Tvrtka uspješno dodana."
          );

      } catch (err) {
        //Baci error 500...
        return apiResponse.ErrorResponse(res, err);
      }
    }
  ];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM