运行Firebase函数时遇sequelize.import不是函数错误求助
解决
sequelize.import is not a function 错误 问题原因
Sequelize从v6版本开始正式移除了sequelize.import()方法,你的代码中仍在调用这个已废弃的API,因此触发TypeError,进而导致Firebase Functions无法加载函数定义。
解决方案
替换
sequelize.import为标准模块导入方式- 若使用CommonJS(Firebase Functions默认支持),将原代码:
修改为:const User = sequelize.import('./user.model');
对应的模型文件需导出接收const User = require('./user.model')(sequelize, require('sequelize').DataTypes);sequelize和DataTypes的函数:module.exports = (sequelize, DataTypes) => { return sequelize.define('User', { // 模型字段定义 }); }; - 若使用ES模块(需在函数目录
package.json中添加"type": "module"),改为:import { DataTypes } from 'sequelize'; import UserModel from './user.model.js'; const User = UserModel(sequelize, DataTypes);
- 若使用CommonJS(Firebase Functions默认支持),将原代码:
确认并升级Sequelize版本
执行命令查看当前版本:npm list sequelize若版本低于v6,升级到最新稳定版:
npm install sequelize@latest匹配Firebase Functions的模块系统
- 默认使用CommonJS,不要在函数代码中混用
import/export - 若启用ES模块,确保函数目录
package.json中存在"type": "module",你的Node.js 16.16.0版本完全支持该配置
- 默认使用CommonJS,不要在函数代码中混用
内容的提问来源于stack exchange,提问作者Vishwas Nagesh
相关产品推荐
相关产品推荐

