首先是typeorm的官方地址,
國內有人翻了中文版,不保證時效性
?通過npm安裝下列包:
?根路徑配置:
{ "compilerOptions": {  "module": "commonjs",  "noImplicitAny": true,  "removeComments": true,  "preserveConstEnums": true,  "sourceMap": true,  "outDir": "./dist",  "emitDecoratorMetadata": true,  //typeorm特需  "experimentalDecorators": true  //typeorm特需 }, "include": [  "src/**/*" ], "exclude": [  "node_modules",  "**/*.spec.ts" ]}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路徑,此項與項目勿關,只為了方便調試
{ "name": "Current TS File", "type": "node", "request": "launch", "program": "${workspaceRoot}//node_modules//ts-node//dist//bin.js", "args": [  "${relativeFile}" ], "cwd": "${workspaceRoot}", "protocol": "inspector"}?編寫主體:
根路徑下創建/編輯index.ts(名字可自定義),配置package中start腳本命令為ts-node index.ts,
import "reflect-metadata";import {createConnection} from "typeorm";import {xxx} from "./src/entity/xxx";  //引入數據表結構映射文件createConnection().then(async connection => {  //連接參數為空時自動按照路徑下ormconfig.json信息連接 /*let a = await connection.query(  `SELECT * FROM xxx` ); *///直接使用原生sql語句查詢  let a = await connection.manager.find(xxx)  //使用連接器查詢 connection.manager console.log("result: ", a);}).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也是初次接觸,文章只是通過短短幾星期的摸索得來,內容難免有誤,若有錯誤還請點撥,謝謝
新聞熱點
疑難解答