[英]I am getting updated object even though the variable has no knowledge of item update in express js
router.get("/:ticketid", async (req, res) => {
try {
const ticket = await ticketTable.findByPk(req.params.ticketid);
const severityTimeSpaninMinutes = {
"Severity 1 - Critical Business Impact": 1 * 60 * 24,
"Severity 2 - Significant Business Impact": 3 * 60 * 24,
"Severity 3 - Some Business Impact": 90 * 60 * 24,
"Severity 4 - Minimal Business Impact": 91 * 60 * 24
}
if (ticket) {
// check if time until caseSubmittedDate is more than 1 day
const timeUntilCaseSubmittedDate = dayjs(ticket.caseSubmittedDate).diff(dayjs(), 'minute')
// if yes, then update the ticketSLA to "Not Met"
if (timeUntilCaseSubmittedDate < -severityTimeSpaninMinutes[ticket.priority]) {
await ticketTable.update({
ticketSLA: "Not Met"
}, {
where: {
tID: ticket.tID
}
})
}
// get attachments based on R_TID
const attachments = await attachmentTable.findAll({
where: {
R_ID: ticket.tID,
columnName: "Requestor"
}
})
res.json({
data: { ...ticket.toJSON(), attachments },
statusCode: 200,
statusMessage: `Successfully fetched ${ticket.toJSON().ticketNo}`
})
} else {
res.status(400).json({
statusCode: 400,
statusMessage: "Missing Ticket"
})
}
} catch (err) {
return res.status(500).json({
statusCode: 500,
statusMessage: err.message
})
}
})
這里的ticket
存儲在開始時使用 sequelize 從票表中獲取的特定項目
表上的 if 條件內發生了更新。
令我驚訝的是數據ticket
data: {...ticket.toJSON(), attachments },
自動從表中獲取更新值,即使它是在更新之前定義的。
這是如何工作的?
該變量的行為就好像它是通過引用而不是通過值賦值的。 在許多語言中,對象是通過引用自動分配的。 將引用想象成指向真實事物的快捷方式或指針。 基元是按值分配的,而不是表現得更像你習慣的那樣。 要按值分配對象,您必須復制該對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.