【问题标题】:Sequelize synchronous findSequelize 同步查找
【发布时间】:2016-04-25 11:22:09
【问题描述】:

我可以使用 Sequelize 同步 find() 吗?例如

const user = User.find({ id: 1 })

(这似乎只是得到了一个承诺。)

【问题讨论】:

标签: javascript node.js sequelize.js


【解决方案1】:

我最终这样做了

const user = yield User.find({ id });

它似乎按预期工作。

【讨论】:

  • 在我的情况下 yield return Generator {suspended },使用 Node.js 4 启用此功能的方法是什么? :)
  • 同意@JuanDavid,我很想知道这个问题的答案。
  • @NobleUplift 我认为我将 K​​oa 与生成器一起使用。您应该查找 async/await ,这很容易并且不需要生成器或 koa。但我认为 Node 4 行不通。
【解决方案2】:

Sequelize 它的一切都基于 Promise ,如果你面对一个像 auth 这样的用例,你可能想在你的应用程序中添加一个层,比如 express 中的中间件,所以在你的应用程序执行一些操作之前,你需要对用户进行身份验证( auth middleware ) 然后传递给下一个函数。

//Auth Middleware example
function(req,res,next){
  User.find({id:1)
  .then(function(user){
     req.user = user;
     next();
  })
  .catch(function(error){
     next(error)
   })
}

【讨论】:

    【解决方案3】:

    我推荐使用await 语法

    const user = await User.findById(id);
    

    【讨论】:

    • 只能在异步函数内部使用
    猜你喜欢
    • 2017-02-17
    • 2017-03-18
    • 1970-01-01
    • 2017-05-26
    • 2016-03-02
    • 2017-09-05
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    相关资源
    最近更新 更多