- 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
应用程序将学生信息插入数据库,然后获取数据库中的所有学生并在控制台中显示,如下所示:
> [email protected] 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 } ]
广告