typescript - “getManager().query()”在 TypeORM 中是如何工作的?
问题描述
我现在正在学习 TypeORM,但我无法真正理解“查询”方法,它是如何工作的。
示例代码如下所示。
export const lists = async (
roleFilter: RoleFilter,
filter: Filter,
dateFilter: BetweenDate,
) => {
const carLists = await getCars(roleFilter, filter);
if (carLists.length === 0) {
return { totalCount: 0, lists: [] };
}
const carIds = carLists.map(car => car.id); // **2 여기서 아이디만 가져옴
const isCheckParam: number[] = [];
let isCheckSQL = '';
if (filter.isCheck !== null) {
....
}
const typeParamArray: string[] = [];
const typeSQLArray: string[] = [];
if (filter.impact === 1) {
typeParamArray.push('impact');
typeSQLArray.push('car_alarm.type = ?');
}
....
const typeSQL =
typeSQLArray.length === 0 ? '' : `(${typeSQLArray.join(' OR ')}) AND`;
const countQuery = `
SELECT
count(*) AS cnt
FROM
car_alarm
WHERE ${typeSQL} ${isCheckSQL} car_alarm.carId IN (?) AND DATE(alarmAt) BETWEEN ? AND ?
const countQuery = `
SELECT
count(*) AS cnt
FROM
car_alarm
WHERE ${typeSQL} ${isCheckSQL} car_alarm.carId IN (?) AND DATE(alarmAt) BETWEEN ? AND ?
`;
const countResult = await getManager().query(countQuery, [
...typeParamArray,
...isCheckParam,
carIds,
dateFilter.start,
dateFilter.end
]);
在这部分中使用 getManager().query()。
const countResult = await getManager().query(countQuery, [
...typeParamArray,
...isCheckParam,
carIds,
dateFilter.start,
dateFilter.end
]);
有人可以解释一下'query()'是如何工作的吗?不知何故,我找不到任何示例或对此进行解释。
解决方案
推荐阅读
- wpf - Powershell上Xaml网格上的重叠按钮与onclick按钮
- javascript - DIVI 中的 Javascript:mouseenter 不起作用
- javascript - Workbox 运行时缓存不适用于带有查询参数的 url?
- reactjs - redux 在反应钩子中调度 prevState 值
- python - 无法使用未更改的 url 抓取网站页面 - python
- asp.net - 将会话超时设置为特定时间而不是长度?
- javascript - Three.js Fiber / Drei - 如何加载 fbx 模型?
- python - 对齐 sympy 的乳胶输出?
- amazon-web-services - 如何允许 AWS Textract 访问受保护的 S3 存储桶
- javascript - 警告:
使用了不正确的大小写。对 React 组件使用 PascalCase,对 HTML 元素使用小写