我是新手后端開發人員,我正在嘗試使用 Node.js 構建 REST API,以便從 Pipedrive 中贏得交易。我已經有一個使用 Axios 獲取所有交易的功能,它作業得很好,但我需要過濾它的回應以僅向我發送具有“贏得”狀態的回應。我在 Pipedrive 中創建了一些具有不同狀態的交易,例如“獲勝”、“丟失”和“開放”。我有一個函式“getAllDeals”,可以將所有這些以 JSON 格式發送給我。我試圖以許多不同的方式適應它,但沒有成功。
我在我的路線/交易中呼叫這個函式:
router.get('/deals', controller.getAllDeals)
這是我的功能,它正在作業,以獲得所有交易:
async getAllDeals(_, res){
try {
const response = await axios.get(`${PIPE_URL}?api_token=${PIPE_TOKEN}`)
return res.json(response.data)
}
catch (err) {
console.log(err)
}
}
這是我最后一次嘗試過濾其回應資料:
async getAllDeals(_, res){
try {
const response = await axios.get(`${PIPE_URL}?api_token=${PIPE_TOKEN}`)
const deals = res.json(response.data)
const dealsWon = response.where(deals, {status: "won"})
return dealsWon
}
catch (err) {
console.log(err)
}
}
我希望有一個簡單的方法來做到這一點。
uj5u.com熱心網友回復:
不確定是什么response.where。您可以使用lodash.where模塊來幫助您解決這個問題。取決于回應結構,您可以使用它lodash.where來提取您需要的相關資料。所以你的代碼應該是這樣的:
const where = require("lodash.where");
async getAllDeals(_, res){
try {
const response = await axios.get(`${PIPE_URL}?api_token=${PIPE_TOKEN}`)
const deals = res.json(response.data)
const dealsWon = where(deals, {status: "won"})
return dealsWon
}
catch (err) {
console.log(err)
}
}
當然不要忘記安裝模塊 npm i lodash.where
uj5u.com熱心網友回復:
您可以Array.prototype.filter根據需要過濾交易。像這樣的事情應該有效。
const dealsWon = deals.filter(deal => deal.status === "won")
uj5u.com熱心網友回復:
我在 Pipedrive 檔案中讀到過 satus 是一個查詢引數,它將通過提供的特定狀態過濾交易:?open=Open, ?won=Won, ?lost=Lost。
我以這種方式在我的 axios 請求中插入查詢:
const response = await axios.get(`${PIPE_URL}?status=Won&api_token=${PIPE_TOKEN}`)
在我這樣做之后,我的請求只回傳了“贏得”狀態的交易。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/359667.html
