Heim  >  Fragen und Antworten  >  Hauptteil

NodeJS verwendet EJS, um Daten an <script> zu senden

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粉511757848P粉511757848408 Tage vor716

Antworte allen(1)Ich werde antworten

  • P粉891237912

    P粉8912379122023-09-08 13:03:03

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

    <ul>
      <% events.forEach(function(event) { %>
        <li>
          Start: <%= event.start %> | End: <%= event.end %>
        </li>
      <% }); %>
    </ul>

    Antwort
    0
  • StornierenAntwort