mysql - 如何将调用 MySQL 的函数替换为查询函数
问题描述
我有这个对 MySQL 进行查询的函数:
const getAllUserReports = (userID) => {
return new Promise((resolve, reject) => {
connection.query(
`SELECT reports.id,report_types.name,companies.id as companyID,reports.year,reports.deadLine
FROM reports
INNER JOIN report_types ON reports.typeID=report_types.id
INNER JOIN companies ON reports.companyID=companies.id
WHERE reports.creatorUserID=${userID} and reports.active
`,
(err, result) => {
if (err) reject(err);
resolve(result);
}
);
});
};
还有更多这样的功能。我想将其更改为从外部文件获取查询并进行调用的功能。例子:
// Get report by ID
const getReportByID = (query,reportID) => {
return new Promise((resolve, reject) => {
connection.query(query(reportID),
(err, result) => {
if (err) reject(err);
resolve(result);
}
);
});
};
解决方案
const getQuery = async (reportID) => {
const query = await readFromFileOrOtherPlace(reportID);
return doSomeValidatingParsingEtc(query);
};
const getReportByID = (reportID) => {
return new Promise(async (resolve, reject) => {
let query = await getQuery(reportID);
connection.query(query,
(err, result) => {
if (err) reject(err);
resolve(result);
}
);
});
};
推荐阅读
- r - 制作密度图
- python - 如何下载 Coco Dataset 的特定部分?
- security - 更改 docker-machine docker 用户默认密码
- javascript - 预期....禁用属性
- django - 为什么覆盖率没有显示通用视图的错误?
- dart - Call FutureBuilder from RaisedButton
- python - Python 和 Firefox (Windows) - 如何保存我看到的页面
- php - FPDF - 找不到类“App\Http\Controllers\FPDF”
- maven - maven构建时没有拾取codehous的镜像存储库
- confluence - Confluence:复制到剪贴板按钮