问题描述:
我正在使用Sequalize ORM和我的Firebase云函数,每当我查询我的MySql数据库时,都会给出SequelizeConnectionError: connect ETIMEDOUT错误。当函数通过Firebase cli在本地主机上运行时,它工作得很好。下面是Sequalize连接方法。
代码段
var sequelize = new Sequelize('dbname, 'username', 'password', {
host: "host",
dialect: 'mysql',
define: {
paranoid: true
},
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 1
},
operatorsAliases: false})
当函数在端口5000上通过Firebase CLI本地运行时,上面的代码工作得很好。当我在Firebase上部署它并运行相同的函数时,我得到了下面的错误。
2018-06-23T11:31:53.887Z E app: Unhandled rejection
2018-06-23T11:31:55.187Z E app: SequelizeConnectionError: connect ETIMEDOUT
at Utils.Promise.tap.then.catch.err (/user_code/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:149:19)
at tryCatcher (/user_code/node_modules/sequelize/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/user_code/node_modules/sequelize/node_modules/bluebird/js/release/promise.js:512:31)
at Promise._settlePromise (/user_code/node_modules/sequelize/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/user_code/node_modules/sequelize/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/user_code/node_modules/sequelize/node_modules/bluebird/js/release/promise.js:689:18)
at Async._drainQueue (/user_code/node_modules/sequelize/node_modules/bluebird/js/release/async.js:133:16)
at Async._drainQueues (/user_code/node_modules/sequelize/node_modules/bluebird/js/release/async.js:143:10)
at Immediate.Async.drainQueues (/user_code/node_modules/sequelize/node_modules/bluebird/js/release/async.js:17:14
)
发布于 2018-06-24 00:30:10
这很可能是因为你的Firebase项目是在免费的Spark支付计划中。使用Spark,你的云函数不能向外连接到不完全由Google控制的服务。要进行外发连接,您必须将您的项目升级到其中一个付款计划,例如Blaze。
发布于 2018-09-25 07:08:39
您可能只允许使用最大大小为1的池。
https://stackoverflow.com/questions/51001037
复制相似问题