首先是typeorm的官方地址, 國內有人翻了中文版,不保證時效性 ·通過npm安裝下列包: typeorm //typeorm連接資料庫 @types/node //類型系統 typescript //ts基礎 oracledb //oracle基礎 ts-node //nodejs編譯運行ts的 ...
首先是typeorm的官方地址,
國內有人翻了中文版,不保證時效性
·通過npm安裝下列包:
- typeorm //typeorm連接資料庫
- @types/node //類型系統
- typescript //ts基礎
- oracledb //oracle基礎
- ts-node //nodejs編譯運行ts的工具;
·根路徑配置:
- package.json //項目依賴、腳本、描述等
- tsconfig.json //ts編譯設置
1 { 2 "compilerOptions": { 3 "module": "commonjs", 4 "noImplicitAny": true, 5 "removeComments": true, 6 "preserveConstEnums": true, 7 "sourceMap": true, 8 "outDir": "./dist", 9 "emitDecoratorMetadata": true, //typeorm特需 10 "experimentalDecorators": true //typeorm特需 11 }, 12 "include": [ 13 "src/**/*" 14 ], 15 "exclude": [ 16 "node_modules", 17 "**/*.spec.ts" 18 ] 19 }
- ormconfig.json //資料庫連接參數
{ "type": "oracle", "host": "10.16.2.41", "port": 1521, "username": "admin", "password": "admin", "sid": "ORCL", "synchronize": true, "logging": true, "entities": [ "src/entity/**/*.ts" ], "migrations": [ "src/migration/**/*.ts" ], "subscribers": [ "src/subscriber/**/*.ts" ] }
- .vscode配置:launch.json ,主要配置vscode在debug時由ts編譯所得的js路徑,此項與項目勿關,只為了方便調試
1 { 2 "name": "Current TS File", 3 "type": "node", 4 "request": "launch", 5 "program": "${workspaceRoot}\\node_modules\\ts-node\\dist\\bin.js", 6 "args": [ 7 "${relativeFile}" 8 ], 9 "cwd": "${workspaceRoot}", 10 "protocol": "inspector" 11 }
·編寫主體:
根路徑下創建/編輯index.ts(名字可自定義),配置package中start腳本命令為ts-node index.ts,1 import "reflect-metadata"; 2 import {createConnection} from "typeorm"; 3 import {xxx} from "./src/entity/xxx"; //引入數據表結構映射文件 4 5 createConnection().then(async connection => { //連接參數為空時自動按照路徑下ormconfig.json信息連接 6 /*let a = await connection.query( 7 `SELECT * FROM xxx` 8 ); *///直接使用原生sql語句查詢 9 10 let a = await connection.manager.find(xxx) //使用連接器查詢 connection.manager 11 console.log("result: ", a); 12 }).catch(error => console.log(error));
在src/entity/下構建數據表實體結構xxx.js,格式參考官網
在cmd根路徑運行npm start,或使用vscode調試
至此,我們已經成功使用typeorm連接到了Oracle資料庫,若要構成完整的後端只需添加中間件等等·與sequelize的差異
從Sequelize轉移到typeorm,是因為sequelize官方不支持連接Oracle
typeorm像名字中描述的那樣,是個使用typescript編寫的、類型系統非常完整的資料庫關係映射,放張數據類型截圖:
這還是js嗎?當然,如此完整的類型系統得益於typescript,我們也可以在構建時酌情使用類型聲明,因為它不是必須的(本質仍是js)
很多類型都可以使用js原生類型+長度代替,是否使用專用類型聲明取決於實際需求
根據資料庫自動生成/更新映射文件腳本會相對複雜
typescript也是初次接觸,文章只是通過短短幾星期的摸索得來,內容難免有誤,若有錯誤還請點撥,謝謝