node.jsとMysqlによるコスト入金


入る前に。


まず、会社の進行側プロジェクトのショッピングモールプロジェクトで使用するAPIを作成し、ノードを作成します.jsでtypescriptを使って他の人にも参考にしてもらいたい

テクノロジースタック


node.js => v14.17.4
mysql => 8.0.22
使用されているパッケージとバージョン

APIテスト=>Insomnia

mysql会員入金表の作成

create table user(
	_no int auto_increment primary key, //식별을 위한 컬럼
    user_id varchar(50) not null, // 아이디
    user_password varchar(100) not null, // 패스워드 => 사이즈를 크게 잡은 이유는 암호화를 할것이기 때문이다
    user_name varchar(30), // 이름
    user_email varchar(30) // 이메일
);
終わったら待ってください.
はこのようにテーブルを構成します.

node.jsの起動


ファイル構造の表示



私はこのようにファイル構造をつかんで行ったのです.

app.ts



appですこうしてtsを構成するもとはPORT図だったenvに入れて処理しますが、面倒なのでapp.tsでcont PORT=3000;として宣言されました.
私たちが普段知っているアプリjsとは異なりreq,res,nextがタイプを指定している.このように指定しないと、エラーが発生します.タイプスクリプトに興味があれば、私の開発でタイプスクリプトの内容を見ることができます.
corsはこのように書くことはできません.whitelistを指定するべきでしたが、フロントエンドはまだ完了していません.後で配置するときに処理して配布します.
よし、今http://localhost:3000/welcome行きますに接続すると
私たちが書いたコードのように、効果はいいです.node.jsが正常に動作していることが確認された以上、nodeです.jsとmysqlを接続する必要があります.

node.jsとmysqlの接続


configフォルダの下にあるdbConnectですjsという名前のファイルが作成されました.

このように接続すれば良いのですが、ちなみにテストの時以外は絶対にコードにhost、user、passwordなどの情報を使用してはいけません.だから私は...envという名前のファイルを作成して管理しています.

.env


dotnvライブラリは、現在のディレクトリにあるデバッガです.環境変数をenvファイルから読み込みます.だから、.envファイルを作成し、必要な環境変数をキー=値のフォーマットとしてリストします.

登録APIの作成


今日のテーマがやっと出てきました
ルーティング部分とAPI論理実行部分を分けます.

routes/routes.ts



ルーティング部分コード.router.get(),router.postでAPIの送信方法を指定し、そのコンテンツをモジュール化してインポートして使用します.

service/user.ts



会員入金のロジックを実行します.(意図的にルーティングしている部分とAPIロジックを実行している部分.これは原因だけでなく毒性的な原因もあり、MVCモードを守ろうと努力してきたが、実際にはM部分があまりよくないようなので、もう少し考えるべきだった…)
あちなみにアイデンティティ暗号ではなくパスワード暗号です私はbcryptライブラリで行い、bodyで送信したパスワードはbcryptです.hashSync(暗号化するターゲット、salt)を使用して暗号化します.

テスト


作成したAPIをテストする時間です。



こうやってAPIを投げたら.

このような結果値を与えることができますが、実際にはparamを使用する必要はありません.しかし、私はテストの時に入れて値が正しいかどうかを見ただけです.

DBで確認



実際にはこのように格納されています.

の最後の部分


会員費の口が詰まるのは簡単ですが、暗号化された部分が入ると、考えなければならない部分が生じるかもしれません.次の記事では、ログインロジック時に復号する方法について説明します.