У меня есть функция, работающая в облаке Google, которая обрабатывает запрос HTTP POST от JOTFORM , и хранимая процедура, которая получает JSON и вставляет данные в таблицу mysql.
Когда я пытаюсь запустить хранимую процедуру на сервере mysql - она работает нормально, проблема в том, что когда я пытаюсь запустить ее из облачной функции Google, используя node.js - нет вставки данных в таблицу.
Вот раздел из функции Google:
const mySQL = require('mysql');
const config = require('./config.json');
const uuid = require('uuid');
const storage = require('@google-cloud/storage');
const instanceConnectionName = process.env.INSTANCE_CONNECTION_NAME || config.INSTANCE_CONNECTION_NAME ;
const dbUser = process.env.SQL_USER || config.MYSQL_USER;
const dbPassword = process.env.SQL_PASSWORD || config.MYSQL_PASSWORD;
const dbName = process.env.SQL_DB_NAME || config.SQL_DB_NAME ;
const mysqlPort = process.env.PORT || config.PORT;
// [START functions_sql_mysql]
const mysqlConfig = {
connectionLimit: 1,
user: dbUser,
password: dbPassword,
database: dbName,
port : mysqlPort
};
mysqlConfig.socketPath = `/cloudsql/${instanceConnectionName}`;
exports.GetWebHookJotContent = (req, res) => {
return Promise.resolve()
.then(function(responses) {
if (req.method !== 'POST') {
const error = new Error('Only POST requests are accepted');
error.code = 405;
throw error;
}
const events = req.body || [];
let mysqlPool ;
if (!mysqlPool) {
mysqlPool = mySQL.createPool(mysqlConfig);
}
mysqlPool.query('CALL `fichman`.`sp_insert_Submission` (' + events + ')');
})
.then(() => res.status(200).end())
.catch((err) => {
console.error(err);
res.status(err.code || 500).send(err);
return Promise.reject(err);
});
}
Как я могу отладить его и посмотреть, что содержит events
?
Можете ли вы выяснить, в чем может быть проблема?
Спасибо