我正在嘗試使用 ejs 將資料從我的 Nodejs 伺服器傳送到我的 html。但問題是我無法讀取腳本中的變數。
Nodejs 伺服器:
exports.getIndex = (req, res, next) => { var alert = req.query.msg; // connect to your database mssql.connect(config, function (err) { if (err) console.log(err); var request = new mssql.Request(); request.query( "SELECT startDate, endDate from Reservations", function (err, recordset) { if (err) console.log(err); events = []; recordset.recordset.forEach((element) => { reserv = {}; reserv.start = element.startDate; reserv.end = element.endDate; events.push(reserv); }); res.render("index", { alert: alert, events: events, }); } ); }); };
我需要像這樣讀取 html 中的事件:
var events = <%= events %>
但我收到控制台錯誤,表示事件不存在。知道如何解決這個問題或如何讓它以不同的方式工作嗎?
我嘗試建立 div 並直接分配,但沒有成功。
P粉8912379122023-09-08 13:03:03
您似乎使用res.render
將events
正確傳遞到您的ejs 視圖,因此,如果您確信events
已填充並且如果您沒有任何資料庫錯誤,則可以像這樣存取events
陣列中的物件:
<ul> <% events.forEach(function(event) { %> <li> Start: <%= event.start %> | End: <%= event.end %> </li> <% }); %> </ul>