在下面的代碼片段中,即使滿足第二個 if 條件并回傳它
return res.status(400).send({message: "This name is already in use. Please enter a new name"});
,代碼仍然繼續執行并在資料庫中插入資料。
為什么會發生這種情況,我怎樣才能阻止它進一步執行?
db.task(async t => {
const totalCustomTemplates = await t.manyOrNone(`SELECT * FROM Test WHERE propertyid = $1`, [
propertyId,
]);
if (totalCustomTemplates.length < 30 ) {
//Check if the template name is unique and does not exist for the property already
totalCustomTemplates.forEach(element => {
if(element.campaigntemplatename == templateName)
{
return res.status(400).send({message: "This name is already in use. Please enter a new name"});
}
});
await db.none('INSERT INTO Test(aid, bid, cid) VALUES ($1, $2, $3)',[a, b, c]);
return res.status(200).send({message: "Template added successfully", template: {
campaignTemplateId: templateId,
templateName: templateName
}});
}
else{
return res.status(400).send({message: "Max reached"});
}
});
uj5u.com熱心網友回復:
您可以使用該some功能檢查名稱是否已被使用。如果條件有效,
這將避免使用forEach并阻止執行:
if (
totalCustomTemplates.some(
(element) => element.campaigntemplatename === templateName
)
) {
return res.status(400).send({
message: 'This name is already in use. Please enter a new name',
});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/409208.html
標籤:
