Передать объект ReferenceError - PullRequest
0 голосов
/ 21 июня 2019

Первоначально я пытался передать объект: id на URL-адрес, это было успешно, но после этого, когда я попытался передать объект в список, он начал показывать ReferenceError.

index.ejs:

  <tr>
    <th class="text-center">AWB NO</th>
    <th class="text-center">Date</th>
    <th class="text-center">Supplier</th>
    <th class="text-center">Country</th>
  </tr>
</thead>
<tbody id="myTable">
  <tr>
    <td class="id"><a href="/dist" + AWB_NO>1687952</a></td>
    <td>06/06/2019</td>
    <td>Tropic Frozen</td>
    <td>Germany</td>
  </tr>

index.js:

router.get('/', function (req, res, next) {
    connection.query('SELECT * FROM orders', function (err, rows) {

        if (err) {
            req.flash('error', err);
            res.render('index', { page_title: "index - Node.js", data: '' });
        } else {

            res.render('index', { page_title: "index - Node.js", data: rows });

        }

    })
});

dist.ejs:

<li class="list-inline-item">AWB Number:<%= AWB_NO %></li> // попытка передать объект

dist.js:

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

    connection.query('SELECT * FROM deliveries', function (err, rows) {

        if (err) {
            req.flash('error', err);
            res.render('dist', { page_title: "dist - Node.js", data: '' });
        } else {

            res.render('dist', { page_title: "dist - Node.js", data: rows });

        }

    })
});

router.get('/:awb', function (req, res) {
    res.render('dist', {
     AWB_NO: req.params.awb
    })
});

Ошибка:

ReferenceError: E:\Dev\admeghbalim\YinSeafood\YinSeafood\expressfirst\views\dist.ejs:20
    18|             <h3>Distributor information</h3><br>&nbsp;
    19|             <ul class="list-inline">
 >> 20|                 <li class="list-inline-item">AWB Number:<%= AWB_NO %></li> &nbsp;
    21|                 <li class="list-inline-item">Country:</li>&nbsp;
    22|                 <li class="list-inline-item">Date:</li>&nbsp;
    23|                 <li class="list-inline-item">Sender:</li>&nbsp;

AWB_NO is not defined

1 Ответ

0 голосов
/ 22 июня 2019

Вы можете изменить, как показано ниже:

index.ejs

    <tr>
    <th class="text-center">AWB NO</th>
    <th class="text-center">Date</th>
    <th class="text-center">Supplier</th>
    <th class="text-center">Country</th>
  </tr>
</thead>
<tbody id="myTable">
  <tr>
    <td class="id"><a href="/dist/<%= AWB_NO %>">1687952</a></td>
    <td>06/06/2019</td>
    <td>Tropic Frozen</td>
    <td>Germany</td>
  </tr>

В index.js я предполагаю, что вы передаете значение для AWB_NO.Предположим, у вас есть любой массив или объект, который вы можете перебрать с помощью цикла for и записать как массив ['AWB_NO'].Это зависит от того, как вы передадите значение в функцию рендеринга.Обновлен dist.js:

  router.get('/dist/:awb',  function (req, res) {
        res.render('dist', {
            AWB_NO: req.params.awb
        })
});

dist.ejs:

<li class="list-inline-item">AWB Number:<%= AWB_NO %></li>

Надеюсь, вы сможете решить эту проблему.

...