无法从promise获取普通对象

rqdpfwrv  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(362)

我正在使用mysql、node.js、pug和sequelize。
我想从数据库中获取数据,并将其转换为一个值,该值可以放入变量中,帕格可以将其转换为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\u name我试过name1我试过多种获取信息的方法。
我试着将查询放在next too advisor\u name中:我只是不知道如何从sequelize中获取值并将其放入pug变量中。

sz81bmfz

sz81bmfz1#

您需要在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
      });

  });

});
20jt8wwn

20jt8wwn2#

尝试使用异步函数:-

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
        });
    }
});

相关问题