簡體   English   中英

我找不到原因“錯誤:無法讀取未定義的屬性 'toString'”

[英]I can not find the reason “ERROR: Cannot read property ‘toString’ of undefined”

這是我在堆棧上的第一個問題,所以我不知道我是否描述得很好。 我有一個問題,因為在將數據放入輸入(表單)並選擇參數“edit”后,它並不表示所選記錄。 目前,我仍然收到錯誤“無法讀取未定義的屬性'toString'”,請告訴我

控制器:

exports.editWynajmyList = (req, res, next) => {
    const wynId = req.params.wynId;
    WynajmyRepository.getWynajmyById(wynId)
    .then(wyn => {
    res.render('pages/wynajmy-form', {
        wyn: wyn,
        formMode: 'edit',
        pageTitle: 'Edycja wynajmy',
        btnLabel: 'Edytuj wynajm',
        formAction: '/wynajmy/edit',
        navLocation: 'wyn'});
    });
}

存儲庫:

exports.getWynajmyById = (wynId) => {
    const query = `SELECT w._id as w_id, w.data_rozp, w.data_zak, w.ubezp, a._id as a_id, a.vin, a.marka, a.model, a.rocznik, a.model_silnika, a.wyposazenie, k.imie, k.nazwisko 
    FROM Wynajmy w
    left join Klienci k on w.kli_id = k._id
    left join Auta a on w.aut_id=a._id
    where w._id=?`
    return db.promise().query(query, [wynId])
        .then((results, fields) => {
            const row = results[0][0];
            if(!row){
                return{};
            }
        const wynajmy = {
            _id: wynId,
            data_rozp: row.data_rozp,
            data_zak: row.data_zak,
            ubezp: row.ubezp,
            auto: {
                _id: row.aut_id,
                vin: row.vin,
                marka: row.marka,
                model: row.model,
                rocznik: row.rocznik,
                model_silnika: row.model_silnika,
                wyposazenie: row.wyposazenie
            },
            klient: {
                _id: row.kli_id,
                imie: row.imie,
                nazwisko: row.nazwisko,
                pesel: row.pesel
            }
        };
        console.log(wynajmy);
        return wynajmy;
        })
        .catch(err => {
            console.log(err);
            throw err;
        });
};

.ejs

<label for="vin">VIN pojazdu:<sup>*</sup></label>
            <select id="vin" name="aut_id" required <%=(formMode=='showDetails' ) ? 'disabled' : '' %> >
                <option value="" selected>--- Wybierz auto ---</option>
                <% for (let i=0; i<allAuts.length; i++) { let aut=allAuts[i]; %>
                    <option value="<%= aut._id %>" label="<%= aut.vin %>" <%=(wyn._id && aut._id.toString() == wyn.auto._id.toString() ) ? 'selected' : '' %>></option>
                    <% } %>
                </select>
                <span id="errorVIN" class="errors-text"></span>

錯誤“無法讀取未定義的 toString 屬性”意味着您正在對不存在(未定義)的東西調用toString() )。 在您的代碼中,我可以看到您在“aut._id”上調用了toString() ,而我認為您的意思是 auto._id。

<%=(wyn._id && auto._id.toString() == wyn.auto._id.toString() ) ?  // auto instead of aut

暫無
暫無

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

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