package.json
{
"name": "typeorm_study",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node dist/app.js",
"dev": "nodemon src/app.ts",
"build": "tsc -p ."
},
"author": "",
"license": "ISC",
"dependencies": {
"@types/node": "^16.11.6",
"express": "^4.17.1",
"mysql": "^2.18.1",
"reflect-metadata": "^0.1.13",
"ts-node": "^10.4.0",
"tsc": "^2.0.3",
"typeorm": "^0.2.38",
"typescript": "^4.4.4"
}
}
tsconfig.json
{
"compilerOptions": {
"experimentalDecorators": true,
"target": "es5",
"module": "commonjs",
"rootDir": "./src",
"moduleResolution": "node",
"outDir": "./dist",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"strictPropertyInitialization": false,
"skipLibCheck": true,
"emitDecoratorMetadata": true,
"types": ["node"]
}
}
DB 생성
mysql -uroot
폴더 구조
entity/users.ts
import {Entity, PrimaryGeneratedColumn, Column} from "typeorm";
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
firstName: string;
@Column()
lastName: string;
@Column()
age: number;
}
app.ts
import rm from "reflect-metadata";
import { createConnection, Connection, Repository } from "typeorm"
import { User } from "./entity/users";
async function hello(): Promise<User> {
const connection = await createConnection({
type: 'mysql',
host: "localhost",
port: 3306,
username: "root",
password: "1234",
database: "typeormtest",
synchronize: true,
entities: [
"entity/*.ts",
__dirname + "/entity/*.ts"
]
});
const userRepo = connection!.getRepository(User);
const user1 = new User();
user1.firstName = "Garden";
user1.lastName = "Lee";
user1.age = 20;
await userRepo.save(user1);
const user2 = new User();
user2.firstName = "Timber";
user2.lastName = "Saw";
user2.age = 25;
await userRepo.save(user2);
const user3 = new User();
user3.firstName = "Selena";
user3.lastName = "Gomez";
user3.age = 30;
await userRepo.save(user3);
const allUsers = await userRepo.find();
console.log("all users: ", allUsers);
const firstUser = await userRepo.findOne(allUsers[0].id); // find by id
console.log("first user:", firstUser);
const selena = await userRepo.findOne({ firstName: "selena" });
console.log("selena:", selena);
return user1;
}
hello();