NodeJS verwendet EJS, um Daten an <script> zu senden
P粉511757848
P粉511757848 2023-09-07 15:08:05
0
1
757

Ich versuche, Daten von meinem NodeJS-Server mithilfe von EJS an meinen HTML-Code zu senden. Das Problem ist aber, dass ich die Variablen im Skript nicht lesen kann.

Nodejs-Server:

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,
        });
      }
    );
  });
};

Ich muss Ereignisse in HTML wie folgt lesen: var events = <%= events %>

Aber ich erhalte eine Konsolenfehlermeldung, die besagt, dass das Ereignis nicht existiert. Irgendeine Idee, wie man das beheben kann oder wie man es anders funktionieren lässt?

Ich habe versucht, das Div zu erstellen und es direkt zuzuweisen, aber ohne Erfolg.

P粉511757848
P粉511757848

Antworte allen(1)
P粉891237912

您似乎使用 res.renderevents 正确传递到您的 ejs 视图,因此,如果您确信 events 已填充并且如果您没有任何数据库错误,则可以像这样访问 events 数组中的对象:

<ul>
  <% events.forEach(function(event) { %>
    <li>
      Start: <%= event.start %> | End: <%= event.end %>
    </li>
  <% }); %>
</ul>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage