javascript - Sequelize : How to access [object Promise] or return value from promise?

标签 javascript express nodes sequelize.js

我有一种情况,只有当用户登录时我才想访问用户数据。当我不查询数据库时,我有以下代码可以工作。这意味着 var tmp 设置为 YOUR_API_KEY。但是当查询数据库时,我得到了[object Promise]。在谷歌搜索后,我尝试了不同的解决方案,但没有任何解决方案可以解决我的问题。

var tmp = function() {

   if(req.session.user) {

      return User.findOne({
         where: {
                    id: req.session.user.userID
                },
                include: [
                    { model: Apikey }
                ]
            }).then(function(sqlUser) {
                return sqlUser.Apikeys['0'].kay;
            });

        } else {
            return "YOUR_API_KEY"
        }
}

最佳答案

使用“回调”

var tmp = function(callback) {
  if(req.session.user) {
    return User.findOne({
      where: {
              id: req.session.user.userID
            },
            include: [
              { model: Apikey }
            ]
    }).then(function(sqlUser) {
      callback(sqlUser.Apikeys['0'].kay)
    });
  } else {
    callback("YOUR_API_KEY")
  }
}

//now you can use your function like this
tmp(function(apiKey){
  //do something with apiKey e.g.:
  console.log(apiKey)
});

关于javascript - Sequelize : How to access [object Promise] or return value from promise?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33170094/

相关文章:

javascript - 处理 Orchestrate.io 查询的最佳模式

javascript - C3 使用分类 JSON 数据创建条形图

javascript - Photoshop 沿 y 轴移动图层

node.js - 我应该在哪里进行数据库查询以及为什么我没有得到查询结果?

node.js - 无法使用 Express Handlebars 在目录中查找 View

Swift - 未检测到随机碰撞

xpath:如何定位包含多个另一个特定节点的节点

c++ - 如何使用引用传递的值进行更新以删除双链表中的出现

javascript - AngularJS - 等待服务器的响应

javascript - 如何突出显示单条 y 轴网格线