Я работаю над некоторым существующим кодом NodeJS с Core и CoreTest в качестве двух функций. CoreTest выполняет запрос и сохраняет выбранные строки в переменной с именем CoreSQL. Core также выполняет некоторые запросы, однако для одного из запросов требуется часть CoreSQL.
Я думаю, что неправильно вызываю CoreTest
module.exports = {
CoreTest: (req, res) => {
return new Promise((resolve, reject) => {
const core = db.format.escape(req.query.q);
const coreSQL = `query with parameter = ${core}`;
returnData(coreSQL, resolve, reject);
resolve(coreSQL);
})
},
Core: (req, res) => {
return new Promise((resolve, reject) => {
if (req.query.q.length > 0) {
var core = module.exports.CoreTest(req, res);
}
else
{
reject("PROBLEMS")
}
const coreSQLceDevID = `query where parameter like ${core}`
const coreSQLpID = `query where parameter like ${coreSQLceDevID})`
const coreSQL = `query where parameter like ${coreSQLpID}`
returnDataB(coreSQL, resolve, reject);
})
}
}
Функции возврата данных запускают запрос SQL и выглядят следующим образом:
const returnData = (sql, resolve, reject) => {
db.query(sql, (err, result) => {
if (err)
reject(err)
else
resolve(result)
})
}
Я получаю следующую ошибку:
error: Unhandled rejection!
Reason:TypeError: Cannot read property 'q' of undefined,
Promise: [object Promise]
Хотя, когда я использую контрольные точки для проверки значения q, оно не является неопределенным, поэтому должно возникнуть проблема с вызовом CoreTest.