初衷: 平时有些小服务不想用python那么重的框架,所以就选Node比较轻的框架来做。首先学习这个过程是很漫长的,我也只是记录一下我在学习过程中的一些问题,并且现在是边学边记录,大家有问题得话可以直接留言联系,一起探讨。
typeorm
完全不懂啊,那么就一步步跟着教程走呗。首先打开官网
步骤
-
npm init -y
oryarn init -y
第一步先初始化package.json文件,都可以。使用npm
oryarn
你自己随意。 -
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)
})
妥了~~~~
整个项目的结构就是这样的,貌似没遇到很恶心的事情。。 哦,有一个,就是tsconfig.json
里面有个"noImplicitAny": false
修改为false
, 不然ts会有警告提示。毕竟我现在ts也是个渣渣水平,不能因为一个知识点耽误了整个进程不是么? 慢慢来,边看边学呗!!!!下一篇