Не могу получить обычный объект от Promise - PullRequest
0 голосов
/ 11 ноября 2018

Я использую MySQL, Node.js, Pug и Sequelize.

Я хочу получить данные из базы данных и преобразовать их в значение, которое можно поместить в переменную, которую Pug может преобразовать в html.

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

    var name1 = BasicInformation.findOne({
        attributes: [ 'advisor_name' ],
        where: {
            id: '1'
        }
    }).then(function(name1){
        return name1;
    });

        res.render('programofstudy', {
            advisor_name: name1.advisor_name
        });
});

Проблема в том, что на веб-странице ничего не отображается. Я пробовал name1.advisor_name Я пробовал name1 Я пробовал несколько способов получения информации.

Я попытался поместить запрос внутрь следующего тоже advisor_name: Я просто не уверен, как получить значение из Sequelize и в переменную Pug.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Попробуйте с асинхронной функцией: -

app.get('/', async function(req, res) {
    try {
        var name1 = await BasicInformation.findOne({
            attributes: ['advisor_name'],
            where: {
                id: '1'
            }
        });
        res.render('programofstudy', {
            advisor_name: name1.toJSON().advisor_name
        });
    } catch (err) {
        res.render('programofstudy', {
            error: err
        });
    }
});
0 голосов
/ 11 ноября 2018

Вам нужно сделать страницу ВНУТРИ обратного вызова из mongodb:

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

  var name1 = BasicInformation.findOne({
    attributes: [ 'advisor_name' ],
      where: {
        id: '1'
      }
    }).then(function(name1){

      res.render('programofstudy', {
        advisor_name: name1.advisor_name
      });

  });

});
...