- TypeORM 教程
- TypeORM - 首頁
- TypeORM - 簡介
- TypeORM - 安裝
- TypeORM - 建立一個簡單的專案
- TypeORM - 連線 API
- TypeORM - 實體
- TypeORM - 關係
- TypeORM - 使用 Repository
- TypeORM - 使用 Entity Manager
- TypeORM - 查詢構建器
- TypeORM - 查詢操作
- TypeORM - 事務
- TypeORM - 索引
- TypeORM - 實體監聽器和日誌記錄
- 使用 JavaScript 的 TypeORM
- TypeORM - 使用 MongoDB
- TypeORM 與 Express
- TypeORM - 遷移
- TypeORM - 使用 CLI
- TypeORM 有用資源
- TypeORM - 快速指南
- TypeORM - 有用資源
- TypeORM - 討論
使用 JavaScript 的 TypeORM
TypeORM 預設支援的語言是 TypeScript。由於 TypeScript 支援靜態型別、類和裝飾器,因此定義實體及其屬性很容易。同時,在某些首選語言為 JavaScript 的專案中,JavaScript 也是必要的。TypeORM 也完全支援 JavaScript 語言。TypeORM 支援 es5 和 es6 兩種 JavaScript 版本。
在本章中,讓我們學習如何在 JavaScript ES5 (ECMAScript 5) 中編寫 TypeORM 應用程式。
開啟命令提示符並轉到您的工作區。
cd /path/to/workspace/
執行以下命令以建立 TypeORM 專案。
typeorm init --name typeorm-javascript-student-app --database mysql
開啟package.json檔案以刪除 typescript 引用。
原始
{
"name": "typeorm-javascript-student-app", "version": "0.0.1",
"description": "Awesome project developed with TypeORM.", "devDependencies": {
"ts-node": "3.3.0", "@types/node": "^8.0.29", "typescript": "3.3.3333"
},
"dependencies": {
"typeorm": "0.2.24", "reflect-metadata": "^0.1.10", "mysql": "^2.14.1"
},
"scripts": {
"start": "ts-node src/index.ts" }
}
更新後
{
"name": "typeorm-javascript-student-app", "version": "0.0.1",
"description": "Awesome project developed with TypeORM.", "dependencies": {
"typeorm": "0.2.24",
"mysql": "^2.14.1"
},
"scripts": {
"start": "node src/index.js"
}
}
這裡:
- 刪除了devDependencies部分和dependencies部分中與 typescript 相關的包。
- 將啟動指令碼更改為指向 javascript 程式碼而不是 typescript 程式碼。
執行以下命令以安裝必要的包。
npm install
刪除tsconfig.json和 index.ts 檔案。
刪除 entity 資料夾內的 User.ts 檔案,然後建立 JSON 格式的學生實體檔案 student.json,如下所示:
{
"name": "Student",
"columns": {
"id": {
"primary": true,
"type": "int",
"generated": true
},
"name": {
"type": "varchar"
},
"age": {
"type": "integer"
}
}
}
建立一個新檔案 src/index.js 並放入以下程式碼:
var typeorm = require("typeorm"); var EntitySchema = typeorm.EntitySchema;
typeorm.createConnection({
"type": "mysql",
"host": "localhost",
"port": 3306,
"username": "root",
"password": "123456",
"database": "typeorm_test_db",
"synchronize": true,
"logging": false,
entities: [ new EntitySchema(require("./entity/student.json"))
]
})
.then(function(connection) {
return connection.getRepository("Student"); }) .then(function(studentRepository) {
var student = {
name: "Student1",
age: 18
};
return studentRepository.save(student) .then(function(savedStudent) { console.log("Student has been successfully saved: ", savedStudent);
return studentRepository.find(); })
.then(function(students) { console.log("All students: ", students);
return;
})
.catch(function(error) { console.log("Error: ", error); return;
})
})
.catch(function(error) { console.log("Error: ", error)
return; });
這裡:
我們使用了相同的 typeORM 方法,除了以下提到的更改:
- 使用EntitySchema配置學生實體。
- 使用了 JavaScript Promise 概念 (then / catch / finally) 塊。
現在,使用以下命令執行應用程式:
npm start
應用程式將學生資訊插入資料庫,然後獲取資料庫中的所有學生並在控制檯中顯示,如下所示:
> typeorm-javascript-student-app@0.0.1 start /path/to/workspace/typeorm-javascript-student-app
> node src/index.js
Student has been successfully saved: { name: 'Student1', age: 18, id: 1 } All students: [ { id: 1, name: 'Student1', age: 18 } ]
廣告