NodeJS использует EJS не может получить новый HTML (запрос из MySQL) - PullRequest
0 голосов
/ 19 марта 2019

У меня проблема с NodeJS, когда я использую EJS.

У меня 2 html-страницы.Первая html-страница предназначена для пользователя (клиента), чтобы задать диапазон запросов, и когда они нажимают кнопку отправки, NodeJS выполнит SQL-запрос и ответит на запрос второго html.

Моя проблема:когда я тестирую запрос, я вижу запрос в своей консоли, но он просто останавливается ...

Вот мой код NodeJS:

var express = require("express");
var app = express();
var ejs = require("ejs");

app.set('views','./views');
app.set('views engine','ejs');

app.get('/graph4', function (req, res, next) {


var sql = `select A.card_id, A.state_id state,A.city_id city,A.mail,DATE_FORMAT(A.first_active_month,'%M %Y') first_active_month,B.score loyalty from users A left outer join loyalty B on A.card_id = B.card_id  where B.score between -10 and -9 limit 1`;   
var rows = [] 
fetchData(sql , function (rows) {               
    var now = new Date();
    var today = now.getFullYear() + "/" + (now.getMonth() + 1) + "/" + now.getDate();
    console.log(rows)     
    res.render("graph4.ejs", {
        "title": "TEST",
        "today": today,
        "rows": rows
    })
    console.log("ejs end");
    }); 
});

И это мой код EJS:

<div style="text-align: center"> 
              <%- include("graph4.ejs",{"title": title , "today": today  }) %>
        </div>
        <table class="table table-bordered table-striped table-hover table-heading table-datatable" id="ordersTable">
            <thead><tr>
            <th>ID</th>
            <th>State</th>
            <th>City</th>
            <th>Email</th>
            <th>Activate_Day</th>
            <th>loyalty</th>
            </tr>
            </thead>
            <tbody>
              <% rows.forEach(function(row) {%>
              <tr>
                <td><%= row.card_id %></td>
                <td><%= row.state %></td>
                <td><%= row.city %></td>
                <td><%= row.mail %></td>
                <td><%= row.first_active_month %></td>
                <td><%= row.loyalty %></td>

              </tr>
                    <%});%>
           </tbody>
           </table>                

Когда я запускаю app.js, я получаю много ошибок, подобных этой: введите описание изображения здесь

И мой второй html (EJS) стал таким(Я только что видел ту же ошибку повторить и повторить): введите описание изображения здесь

1 Ответ

0 голосов
/ 19 марта 2019

Поскольку вы используете имена (переменные), которые не описывают содержимое файла, вы допустили ошибку и прикрепили тот же файл.

Вы это видите?

res.render("graph4.ejs",

<%- include("graph4.ejs",

Вы пытаетесь отрендерить graph4.ejs, включая graph4.ejs, включая graph4.ejs, включая graph4.ejs, включая graph4.ejs ... до тех пор, пока не будет превышен предел включения / памяти.

...