【发布时间】:2020-03-29 20:38:42
【问题描述】:
我在firebase中部署了这个函数来连接我的谷歌云mysql数据库:
const functions = require('firebase-functions');
const mysql = require('mysql');
const connectionName = process.env.INSTANCE_CONNECTION_NAME || 'xxx';
const dbUser = process.env.SQL_USER || 'xxx';
const dbPassword = process.env.SQL_PASSWORD || 'xxx';
const dbName = process.env.SQL_NAME || 'xxx';
const mysqlConfig = {
connectionLimit: 1,
user: dbUser,
password: dbPassword,
database: dbName,
socketPath: `/cloudsql/${connectionName}`,
};
if (process.env.NODE_ENV === 'production') {
mysqlConfig.socketPath = `/cloudsql/${connectionName}`;
}
let mysqlPool;
exports.populateDatabase = functions.https.onRequest ((req, res) => {
if (!mysqlPool) {
mysqlPool = mysql.createPool(mysqlConfig);
}
mysqlPool.query('SELECT * from exercise', (err, results) => {
if (err) {
console.error(err);
res.status(500).send(err);
} else {
res.send(JSON.stringify(results));
}
});
});
然后点击firebase中生成的链接,结果是这样的:
{"errno":"ECONNREFUSED","code":"ECONNREFUSED","syscall":"connect","address":"/cloudsql/xxx","fatal":true}
我该如何解决这个问题?
【问题讨论】:
标签: javascript mysql firebase google-cloud-functions google-cloud-sql