koa + typeorm (二)

初衷: 平時(shí)有些小服務(wù)不想用python那么重的框架,所以就選Node比較輕的框架來做。首先學(xué)習(xí)這個(gè)過程是很漫長的,我也只是記錄一下我在學(xué)習(xí)過程中的一些問題,并且現(xiàn)在是邊學(xué)邊記錄,大家有問題得話可以直接留言聯(lián)系,一起探討。

typeorm 完全不懂啊,那么就一步步跟著教程走唄。首先打開官網(wǎng)

步驟

  1. npm init -y or yarn init -y 第一步先初始化package.json文件,都可以。使用npm or yarn 你自己隨意。
  2. npm install typeorm reflect-metadata --save ,reflect-metadata 這個(gè)包是必須安裝的。至于這個(gè)包的作用,推薦一篇文章,先理解一下是個(gè)什么東西,不理解也無所謂~~~。
  3. npm install @types/node --save node的智能提示。
  4. 因?yàn)槲矣玫氖?code>mysql, 所以我要安裝的是npm install mysql2 --save。
  5. 最重要的一點(diǎn)是tsconfig.json的配置:
  "emitDecoratorMetadata": true,
  "experimentalDecorators": true,
  1. mysql需要安裝, 我安裝的版本為5.7

內(nèi)心獨(dú)白,在新建庫的時(shí)候,由于默認(rèn)編碼是latin1. 所以寫中文的時(shí)候總是寫不進(jìn)去,后來把數(shù)據(jù)庫的配置文件改了一下編碼格式,并且刪除了原來的庫,又重新建的才可以輸入的中文。??????,還是用的太少了。。。

  1. 好了,準(zhǔn)備工作完事了,下面開始進(jìn)入正題了~~~
  • 準(zhǔn)備一個(gè)實(shí)體文件。

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;
}
  • 準(zhǔn)備配置文件,根目錄下新建 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 是與現(xiàn)在的表保持同步。
logging 應(yīng)該是日志,但我也不知道怎么用,就先這樣吧。
entities 是實(shí)體的路徑,也就是我們說的表,是以對(duì)象的形式創(chuàng)建的表。

  • 按照文檔一頓操作,先是連接數(shù)據(jù)庫。新建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)
})

妥了~~~~

image.png

整個(gè)項(xiàng)目的結(jié)構(gòu)就是這樣的,貌似沒遇到很惡心的事情。。 哦,有一個(gè),就是tsconfig.json 里面有個(gè)"noImplicitAny": false 修改為false, 不然ts會(huì)有警告提示。畢竟我現(xiàn)在ts也是個(gè)渣渣水平,不能因?yàn)橐粋€(gè)知識(shí)點(diǎn)耽誤了整個(gè)進(jìn)程不是么? 慢慢來,邊看邊學(xué)唄!?。。?a href="http://www.itdecent.cn/p/fe31ebabe05a" target="_blank">下一篇

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容