koa2 orm mysql,koa + typeorm (二)

初衷: 平时有些小服务不想用python那么重的框架,所以就选Node比较轻的框架来做。首先学习这个过程是很漫长的,我也只是记录一下我在学习过程中的一些问题,并且现在是边学边记录,大家有问题得话可以直接留言联系,一起探讨。

typeorm 完全不懂啊,那么就一步步跟着教程走呗。首先打开官网

步骤

npm init -y or yarn init -y 第一步先初始化package.json文件,都可以。使用npm or yarn 你自己随意。

npm install typeorm reflect-metadata --save ,reflect-metadata 这个包是必须安装的。至于这个包的作用,推荐一篇文章,先理解一下是个什么东西,不理解也无所谓~~~。

npm install @types/node --save node的智能提示。

因为我用的是mysql, 所以我要安装的是npm install mysql2 --save。

最重要的一点是tsconfig.json的配置:

"emitDecoratorMetadata": true,

"experimentalDecorators": true,

mysql需要安装, 我安装的版本为5.7。

内心独白,在新建库的时候,由于默认编码是latin1. 所以写中文的时候总是写不进去,后来把数据库的配置文件改了一下编码格式,并且删除了原来的库,又重新建的才可以输入的中文。😔😔😔,还是用的太少了。。。

好了,准备工作完事了,下面开始进入正题了~~~

准备一个实体文件。

src/entity/photo.ts

import { Entity, Column, PrimaryGeneratedColumn } from "typeorm";

@Entity()

export class Photo {

@PrimaryGeneratedColumn()

id!: number;

@Column()

name!: string;

@Column()

description!: string;

@Column()

filename!: string;

@Column()

views!: number;

@Column()

isPublished!: boolean;

}

准备配置文件,根目录下新建 ormconfig.js

ormconfig.js

module.exports = {

"type": "mysql",

"host": "localhost",

"port": 3306,

"username": "root",

"password": "123456",

"database": "school",

"synchronize": true,

"logging": false,

"entities": ['./src/entity/photo.ts']

}

synchronize 是与现在的表保持同步。

logging 应该是日志,但我也不知道怎么用,就先这样吧。

entities 是实体的路径,也就是我们说的表,是以对象的形式创建的表。

按照文档一顿操作,先是连接数据库。新建src/index.ts文件.

src/index.ts

import {createConnection} from 'typeorm';

import ormConfig from '../ormconfig.js';

import {Photo} from "./entity/photo";

createConnection(ormConfig).then(async connection => {

console.log(connection)

}).catch(err => {

console.log(err)

})

妥了~~~~

f7c2317c5043

image.png

整个项目的结构就是这样的,貌似没遇到很恶心的事情。。 哦,有一个,就是tsconfig.json 里面有个"noImplicitAny": false 修改为false, 不然ts会有警告提示。毕竟我现在ts也是个渣渣水平,不能因为一个知识点耽误了整个进程不是么? 慢慢来,边看边学呗!!!!下一篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值