如何将连接用作具有类型的独立对象?

2024-02-21

不工作的代码只是为了说明我想要实现的目标

一些连接文件

import { ConnectionManager } from 'typeorm';

const c = new ConnectionManager();
// user ormconfig.conf file
export const connection = c.createAndConnect();

在某些模型中使用

@Entity()
@Table("annual_incomes")
export class AnnualIncome
{
    @PrimaryGeneratedColumn()
    id: number;

    @Column({ length: 75 })
    variant: string;

    @Column("int")
    sort: number;

    @Column()
    is_active: boolean;
}

后来在代码中的某个地方,我想与所有方法建立连接,例如:

import { connection } from 'someconnection';
import { AnnualIncome } from 'entities';

// some code here

api.get('/incomes', async(ctx) => {
    ctx.body = await connection.getRepository(AnnualIncome).find();
});

通常,我会收到错误tsc that .getRepository()没有找到方法connection。但是,如果我做类似的事情:

import { connection } from 'someconnection';
import { AnnualIncome } from 'entities';

// some code here

api.get('/incomes', async(ctx) => {
    ctx.body = await connection.then(async connection => {
       return await connection.getRepository(AnnualIncome).find();
    }
});

上面的代码适用于定义和tsc不会抱怨不存在的方法。

我想避免额外的定义connection.then()并变得简单connection与定义的所有方法<Connection> type.


只需使用createConnection引导应用程序时创建连接的方法。稍后您可以使用以下方式从任何地方访问您的连接getConnection() method:

import { AnnualIncome } from 'entities';
import { createConnection, getConnection } from 'typeorm';

// somewhere in your app, better where you bootstrap express and other things
createConnection(); // read config from ormconfig.json or pass them here

// some code here

api.get('/incomes', async(ctx) => {
    ctx.body = await getConnection().getRepository(AnnualIncome).find();
});

您也可以简单地使用getRepository方法也可以从任何地方使用:

import { AnnualIncome } from 'entities';
import { getRepository } from 'typeorm';

// some code here

api.get('/incomes', async (ctx) => {
    ctx.body = await getRepository(AnnualIncome).find();
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将连接用作具有类型的独立对象? 的相关文章

随机推荐

  • Rails 应用程序,IIS 8.5 中具有 Windows 身份验证的 REMOTE_USER 属性

    我已经设置了一个 IIS 8 5 服务器 它使用以下命令运行 Rails 应用程序HttpPlatformHandler和 Windows 身份验证 我们还尝试使用 ARR 作为反向代理 结果相同 这一切都工作得很好 用户使用 kerber
  • Ruby 转义 ARGV 参数或字符串作为 shell 命令的参数

    好吧 这让我发疯 ls media music Miles Davis 由于 Miles 和 Davis 之间有空格而失败 假设我编写了一个 ruby 脚本 并且用户将文件路径作为参数传递 我如何转义它并提供给 shell out 命令 是
  • canvas toDataURL 未返回完整图像

    我正在构建一个为图像添加水印的 jQuery 插件 是的 我很清楚 javascript html5 水印系统的多重缺点 但现在忽略它 每个图像的基本方法是 将图像粘贴到画布的背景 添加水印图像的数据 将原始图像的 src 替换为画布的 s
  • 在 MATLAB 中从 CSV 文件读取日期和时间

    datetime M01 M02 M03 M04 M05 M06 8 15 2009 0 00 5 8 7 8 7 8 7 3 0 7 9 8 15 2009 0 10 7 1 8 1 8 1 7 7 0 8 1 8 15 2009 0 2
  • Angular 6 SyntaxError:JSON.parse 位置 0 处的 JSON 中出现意外标记 <

    我知道这个问题已经被问过 但我找不到任何合适的解决方案 我正在尝试做一个post要求 该 API 需要一个x www form urlencoded正文格式所以我最终这样做了 login account LogAccount Observa
  • Android 加速度计移动球

    我在网络上发布的教程的帮助下开发了一个示例应用程序 我的目标是访问加速计并根据手机方向移动球 我在某种程度上是成功的 但我有两个问题 球超出屏幕范围 球的运动不顺畅 看起来它消失并重新出现在屏幕上 这是我的代码 我需要做些什么改变才能让球像
  • ExtJS 多个监听器

    我有一个属性网格 我想向其中添加多个 渲染后 侦听器 是否可以添加多个相同类型的侦听器 或在一个侦听器中触发多个函数 我试过了 afterrender function function 但它不会触发这两个功能 使用同一事件调用多个函数的另
  • make: *** /lib/modules/2.6.32-279.el6.x86_64/build: 没有这样的文件或目录。停止

    我从他们的网站下载了 RALINK 驱动程序 untar xvf rtl 然后我在其中运行 make 谷歌搜索建议 kernel devel 需要安装 我安装了 kernel devel 软件包 但仍然收到此错误 make lib modu
  • MooTools - 如何使用 getSelected()

    我正在努力学习 MooTools 而且我是一个彻底的 javascript 菜鸟 所以请对我温柔一些 我想做的是在选择特定选项时更改禁用输入字段 类型为文本 的状态 html 看起来有点像这样
  • 画布图像无法在 Chrome 中渲染(适用于 FF4 和 IE9)

    我很困惑 对于我的一生 我不知道为什么这在 Chrome 中不起作用 您可以在此处查看代码 http jsfiddle net corydorning NgXSH http jsfiddle net corydorning NgXSH 当我
  • 将 Python 上下文管理器的迭代器嵌套在“with”中

    我有一个返回上下文管理器的迭代器 我想要一个Pythonicwith语句 模拟几个嵌套的行为with语句 迭代器返回的每个上下文管理器都有一个 有人可能会说 我想要 已弃用的 的概括contextlib nested功能 来自docs ht
  • Define 未在 NodeJS TypeScript 应用程序中定义

    我正在打字稿中开发nodejs应用程序 其中我编写了一个文件server js作为休闲 import express require express import mongoose require mongoose let app expr
  • 如何从 powershell 命令行运行 php 脚本?

    我如何设置我的 powershell 来像这样的命令调用一样运行 php 脚本 php test php 我可以在通过 putty 连接到的工作服务器上执行此操作 但如果我能够直接从我自己的服务器执行这些脚本而不需要运行某些服务器 那就太好
  • 如何将列表中的行插入到QSqlTableModel中?

    下面是我的示例代码 class UI QMainWindow def init self super UI self init uic loadUi tableview ui self self show db QSqlDatabase a
  • 为什么 R 将文件排序为 1 10 100 而不是 1 2 3? [复制]

    这个问题在这里已经有答案了 可能的重复 R 自行对向量进行排序 坏孩子 https stackoverflow com questions 4286299 r sorts a vector on its own accord bad boy
  • IBM .net 驱动程序找不到 db2locale.dll

    我正在尝试将 net 解决方案的 Git 存储库拉到同一台计算机上的另一个文件夹 只是为了确保它有效 在我使用的项目中创建IfxConnections 当我尝试创建一个新的IfxConnection我得到一个DllNotFoundExcep
  • 实现 willDisplay 函数时 UITableViewCell 不取消选择

    我有一个UITableView它显示了几个可用选项供用户选择 我想要的是表始终反映所选的选项 这些选项存储在一个数组中 该数组是与视图控制器分开的类的一部分 我试图使用以下命令在表加载时显示选定的选项tableView tableView
  • jQuery height() 在调整大小时不改变

    我以前从未遇到过这个问题 但我似乎找不到解决方案 所以我希望你们能帮助我 jQuery function setTheHeight if main level1 block attention block content length Ge
  • 如何在 Laravel 中返​​回两次?

    在 Laravel 中有一个函数return back 这将使用户返回到上一页 是否有可能return back 在一个函数中多次返回用户两次或多次 我试过 public function return back return back 但
  • 如何将连接用作具有类型的独立对象?

    不工作的代码只是为了说明我想要实现的目标 一些连接文件 import ConnectionManager from typeorm const c new ConnectionManager user ormconfig conf file