簡體   English   中英

我正在更新對象,即使變量不知道 express js 中的項目更新

[英]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.

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