You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Lambda中Sequelize报错sequelize.authenticate(...).done is not a function

错误原因及修复方案

错误原因

你使用的新版本Sequelize已经移除了.done()方法。该方法是早期Sequelize依赖Bluebird promise库时的非标准API,在Sequelize v4及以上版本已经全面切换为标准ES Promise实现,而标准Promise链末尾不存在.done()方法,调用后就会触发not a function类型错误。

修复方案

根据业务场景二选一即可:

  • 方案1:无额外收尾逻辑时,直接删除末尾的.done()调用即可,标准Promise链到.catch()就已经完成了全部逻辑,不需要额外调用方法。修改后的代码如下:
sequelize
  .authenticate()
  .then(function() {
    console.log("DATABASE CONNECTED! ");
  })
  .catch(err => {
    console.log(err);
  });
  • 方案2:如果需要执行无论成功失败都要运行的收尾逻辑,将.done()替换为标准ES Promise支持的.finally()方法即可:
sequelize
  .authenticate()
  .then(function() {
    console.log("DATABASE CONNECTED! ");
  })
  .catch(err => {
    console.log(err);
  })
  .finally(() => {
    // 此处填写收尾逻辑
  });

修复后建议全局检查代码中其他位置是否还有调用.done()的逻辑,统一替换避免同类报错。

内容的提问来源于stack exchange,提问作者David B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 23:45:03