[node.js]TypeORM CRUDの例で説明
15369 ワード
緒論
前回のレッスンでは、Express開発環境でTypeORMを構成する方法について説明しました.
この記事では、スキーマで作成されたテーブルにデータを挿入、削除、変更、クエリーする方法を例に示します.
TypeORM開発環境が設定されていない人はここです。を参照してください.
まず,以前の文書で実装した
index.ts
文書のコードを以下のように修正した.app.listen()関数の変更
app.listen(3000, () => {
console.log('Starting Server with 3000 port');
createConnection().then(async connection => {
console.log("디비 연결 성공");
}).catch(error => console.log(error));
});
以前は,デバイス接続と同時にユーザテーブルにデータを追加する論理を実現していた.ただし,この文書ではCRUDは要求関数ごとに区切られているため,デバイス接続が成功したときに追加されたデータ論理を削除し,データベース接続が成功したか否かに関するメッセージのみを表示するように変更した.
「クエリー」(Read)関数の定義
既存の
app.get('...')
部の関数はすでにユーザテーブルのすべてのデータをクエリーするコードであり、変更せずにスキップされている.コードは次のとおりです.app.get('/', async (req: Request, res: Response, next: NextFunction) => {
const users = await User.find();
res.send(users);
});
「追加」(Insert)関数の定義
app.post('/', async (req: Request, res: Response, next: NextFunction) => {
const user = new User();
const {
firstName,
lastName,
age
} = req.body;
user.firstName = firstName;
user.lastName = lastName;
user.age = age;
await user.save().then((user) => {
res.status(201).send(user);
})
.catch((err) => {
res.status(400).send(err);
});
});
req.bodyで3つの変数を受信し、対応する値を保存します.結果を確認するために、郵便配達人にPOSTリクエストを送信しました.図に示すように、POST要求をlocalhost:3000
アドレスに送信すると、201の応答結果と、どのようなデータが格納されているかが得られる.実際のデータベースで確認しても、データが正しいことを確認できます.Update関数の定義
app.patch('/', async (req: Request, res: Response, next: NextFunction) => {
await User.update({
id: 1, // 첫번째 {} 에는 조건이 온다.
}, {
age: 30, // 두번째 {} 에는 변경할 컬럼과 값을 정의한다.
}).then((result) => {
res.status(200).send(result);
}).catch((err) => {
res.status(400).send(err);
});
});
データの更新にはbaseEntityが提供するupdate()
メソッドを使用します.パラメータの最初にデータを変更する条件を入力し、2番目のパラメータは変更するカラム名と変更する値を定義します.結果は以下の通りです.およびデータベースにより、id=1を有するインスタンスのage値が30になることがわかる.
削除関数の定義
app.delete('/', async (req: Request, res: Response, next: NextFunction) => {
await User.delete({firstName: 'minsu'}) // 조건을 주지 않으면 모든 데이터가 삭제된다.
.then((result) => {
res.status(204).send(result);
})
.catch((err) => {
res.send(err);
})
});
データの削除にはdelete()
メソッドが使用されます.また、データを削除する際に何の条件も与えなければ、すべてのデータが削除される可能性があるため、上記の条件でフィルタされたデータのみが削除される.Postmanで確認した結果は次のとおりです.とデータベースを使用すると、クエリ時に空のテーブルが表示されます.Reference
この問題について([node.js]TypeORM CRUDの例で説明), 我々は、より多くの情報をここで見つけました https://velog.io/@limsw/node.js-TypeORM-CRUD-예시를-통해-이해하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol