簡體   English   中英

PRN 堆棧:遍歷數據數組,我對數據庫的調用並未針對每個數據記錄進行

[英]PERN stack: Iterating through array of data, my call to my database is not going through for every data record

我一直在瘋狂地尋找解決問題的方法,但似乎沒有任何效果,而且我不知道我哪里出錯了。 我正在使用PERN堆棧創建一個應用程序,並且我有一個長度為24的數據數組。我使用以下代碼片段遍歷我的數據數組(這是在嘗試找到解決方案之后,但結果始終相同) :

 const createEntry = async function (data) { let whatever = await Promise.all( data.map(async (item) => { try { console.log(`${item.name}`); await Entry.post("/", item); //call to database } catch (err) { console.log(err); } }) ); whatever.then(console.log("I hate my life.")); };

我知道由於 console.logs 正在迭代整個數據數組,但是對 Entry.post() 的調用只發生了大概六次,而且我沒有將所有數據都輸入到我的數據庫中。 我的快遞 app.post 代碼如下所示:

 app.post("/url", async (req, res) => { try { const results = await db.query( "INSERT INTO database (id, name) values ($1, $2)", [ req.body.id, req.body.name, ] ); res.send({ status: "success", results: results.rows.length, data: { entry: results.rows[0], }, }); } catch (err) { console.log(`${err.detail} for ${req.body.name}`); } });

所以,我自己解決了這個問題並找到了一個可行的解決方案。

我的問題中的 createEntry 代碼:

 const createEntry = async function (data) { let whatever = await Promise.all( data.map(async (item) => { try { console.log(`${item.name}`); await Entry.post("/", item); //call to database } catch (err) { console.log(err); } }) ); whatever.then(console.log("I hate my life.")); };

現在看起來像這樣:

 const createEntry = async function (data) { try { let result = await CreateDB.post("/", data); return result; } catch (err) { console.log(err); } };

還有我的 app.post 代碼

 app.post("/url", async (req, res) => { try { const results = await db.query( "INSERT INTO database (id, name) values ($1, $2)", [ req.body.id, req.body.name, ] ); res.send({ status: "success", results: results.rows.length, data: { entry: results.rows[0], }, }); } catch (err) { console.log(`${err.detail} for ${req.body.name}`); } });

現在看起來像這樣:

 app.post("/url", async (req, res) => { try { const results = await db.query( "INSERT INTO database (id, name) values ($1, $2)", [ req.body.id, req.body.name, ] ); res.send(res.rows[0]); } catch (err) { console.log(`${err.detail} for ${req.body.name}`); } });

我對我的 createEntry 的調用是:

 let temp = {obj: some object}; createEntry(temp).then((newEntry) => { dbArray.push(newEntry.data); manipulateData(newEntry.data); });

有了這個,我現在可以創建一個數據庫條目,檢索數據庫 object 並使用它,它適用於任何大小的數組,這讓我非常高興。 所以希望,如果有人有類似的問題,這可以提供幫助。

暫無
暫無

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

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