Передача данных в раскрывающийся список из запроса в MSSQL - PullRequest
0 голосов
/ 04 апреля 2019

Перво-наперво, очень новый для Node и экспресс. Я пытаюсь заполнить два раскрывающихся списка, используя два разных результата запроса. Например, я хочу два раскрывающихся списка, один из которых date, другой - name.

Я попытался сделать один выпадающий список для date, и он отлично работал. Однако, когда я пытался сделать оба, продолжал получать эту ошибку: names is not defined.

Router.js

const express = require('express')
const router = express.Router()
const { conn }  = require('./config')

router.get('/', async (req, res) => {
 try {
   var dates = conn.query('select date from table', function(req, result){
     console.log(result);
     res.render('index', {dates : result});
    });
  } catch (err) {
    res.status(500)
    res.send(err.message)
  }
});

router.get('/', async (req, res) => {
  try {
    var names = conn.query('select name from table2', function(req, result){
      console.log(result);
      res.render('index', {names : result});
   });
 } catch (err) {
   res.status(500)
   res.send(err.message)
 }
});

Index.ejs

<div class="Date_Dropdown">
      <span class="caret"></span></button>
            <ul class="dropdown-menu">
                 <% for(var i=0; i < dates.recordset.length; i++) { %>
                       <li><%= dates.recordset[i].Date%></li>
                 <% } %>
            </ul>
</div>

   <div class="Name_Dropdown">
        <span class="caret"></span></button>
             <ul class="dropdown-menu">
                  <% for(var n=0; n < names.recordset.length; n++) { %>
                      <li><%= names.recordset[n].Name%></li>
                  <% } %>
              </ul>
   </div>

App.js

app.use('/', router);

Я пытаюсь получить два выпадающих меню, одно для даты и одно для имен, и оно продолжает выдавать эту ошибку:

names is not defined at eval (eval at compile (), <anonymous>:20:25) at returnedFn () at tryHandleCache () at View.exports.renderFile [as engine] (Desktop\Node\node_modules\ejs\lib\ejs.js:482:10) at View.render (Desktop\Node\node_modules\express\lib\view.js:135:8) at tryRender (Desktop\Node\node_modules\express\lib\application.js:640:10) at Function.render (Desktop\Node\node_modules\express\lib\application.js:592:3) at ServerResponse.render (Desktop\Node\node_modules\express\lib\response.js:1008:7) at Desktop\Node\model\router.js:25:13 at _query (Desktop\Node\node_modules\mssql\lib\base.js:1347:9)

1 Ответ

1 голос
/ 04 апреля 2019

Две функции для обработки одного и того же маршрута / не будут работать. Просто есть и это внутри

  ...
  try {
     var dates = await conn.query('select date from table');
     var names = await conn.query('select name from table2')'
     res.render( 'index', {dates : dates, names: names} );
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...