航行4週目WIL


じゅうでんじかん


忙しくて平凡な特技の時間が2週間過ぎた.
もちろん、私から見れば、時間が足りない.
もっと時間があればもっとMySQLの味を味わえますか?
残念な時間でしたが、もう少し機能を加えてほしいです.
とても楽しい時間でした

MiddleWare


ミドルウェアはNodejs Expressの花と言える.
"Middleware functions are functions that have access to the request object (req), the response object (res), and the next function in the application’s request-response cycle."
公式文書で紹介されているように、
ミドルウェア関数は、req(リクエスト)オブジェクト、res(レスポンス)オブジェクト、およびリクエスト応答サイクルにおける次のミドルウェア関数にアクセス権を持つ関数です.
app.use(function(req, res, next) {
    req.testValue = '안녕하세요.';
    console.log('1번');
    next(); // 다음 middleware 실행
}, function(req, res, next) {
    console.log('2번');
    next(); // 다음 middleware 실행
});
 
app.get('/', function(req, res) {
    console.log('home', req.testValue);
    res.send('Home');
});
app.use('/path', router); // '/path'로 시작하는 경로의 
                         //경우에만 실행됩니다.
 
app.listen(3000);
このサーバを実行すると、コンソールが3回撮影されます.
下記の順番で運行されているのは1番-2番-homeです.こんにちは.
簡単に言えば
要求が実行され、要求が鳴る前に、要求の有効性が処理されるか、または別の関数によって要求が処理される.経過した関数です

そして今回の深化駐車で使ったように、
ユーザーが要求したイベントを実行する前に、許可されたユーザーであることを確認した後、要求を処理するかどうか、および要求を処理するかどうかの操作が役立ちます.

ユーザログインチェックAPI
以下に示すように、ミドルウェアを中間に挿入できます.
ミドルウェアには以下の特徴があります.
  • はすべてのコードを実行します.
  • 次のミドルウェアは、
  • Next()によって呼び出される.
  • res、reqオブジェクトは変更できます.
  • 要求終了応答期間
  • これらの特徴により、認証以外の使用方法も尽きない.

    Jest



    そして今週は私のコードをテストするためにJestというものを使いました.
    Jestとは?
    JavaScriptベースのフレームワーク.
    コードが正常に動作していることを確認します.
    Jest内に状況を記入した後、その場合の結果をテストします.
    邪族ですが、これからもジェンキンスに対処すると思います.
    npm i -D jest babel-jest @babel/core @babel/preset-env
    Jestによるテストでは,ES 6以上の文法を使用するためにbabelの助けが必要であり,babelもインストールされている.
    "scripts": {
    "test": "jest",
    },
    Package.jsonでtestをjestを実行するように設定します.
    **テストファイル作成時の名前.test.jsとして保存する必要があります.

    一般的な関数

    let temp;
    describe("Mcctest", () => {
      beforeEach(() => { //모든 테스트 전...
        temp = 1;
      });
      
      afterEach(() => {
        temp = 0;
      });
      
      test('1 is 1', () => {
        expect(1 `테스트할 코드`).toBe(1);
      });
      
      test('[1,2,3] is [1,2,3]', () => {
        expect([1,2,3]).toEqual(1);
      });
      
      test('add Correct or not', () => {
        exprct(add(3,5)).toBe(7)
      });
    })
  • describe
    テスト単位の最大単位です.
    テスト時にdescribeに記述された内容でテスト単位を大きく分類する.

  • test, it
    基本テストに使用する関数.
    testとitは機能的に区別されませんが、itでは通常他のテストフレームワークで使用されるため、testとitが使用されます.

  • expect
    テストする変数または値をexpect()に追加し、toBeまたはtoEqualを使用して予測値と比較します.

  • toBe, toEqual
    結果予測の値としてよく使用されます.
    toBeは単純な比較を行い,toEqualは配列またはオブジェクト内部まで深く比較した.

  • beforeEach, afterEach
    beforeEachはtest()が実行されるたびに実行される関数です.
    afterEachの場合、テスト()が終了するたびに実行される関数です.
    従って、上記の例では、tempは、何回のテストを行っても1になる.
  • Mock

    import User from "../model";
    
    test("데이터가 없을 경우 빈배열 리턴", async () => {
      beforeEach(() => {
        User = new User();
      });
      
      global.fetch = jest.fn().mockImplementation(() => {
        return new Promise((resolve, reject) => {
          resolve({
            json: () => {
              return [];  // 빈배열 리턴
            },
          });
        });
      });
    
      const userId = await User.getId('test');
      expect(comments.length).toBe(0); // 리턴 값이 빈배열인지 확인
    });
    ユーザー内のユーザーの場合.getId()はfetchで値を取得すると仮定します.
    jest内にfetchに対応する任意の関数が作成されます.
    User.getId()を使用してfetchを呼び出すと、任意に作成したMock関数が呼び出されます.
    したがって、fetch呼び出し時にバックエンドAPIを考慮することなく、空の配列を返すことができる.
    ただし、バックエンドAPIの関数を使用してMockを実行する方法についてはまだ詳しくないため、後で整理して再アップロードする必要がある場合があります.

    来週は本格的なスタート


    来週からフロント3名とバックグラウンド3名でプチスタート
    最初の週からすぐに始まる課題よりも、負担感は少し軽くなりますが、人のことはまだ分かりません.
    だからチームを組むと、みんなが完璧に任務を遂行できるように努力しなければなりません.
    しっかりやることは重要ではありません.たゆまぬ努力をしている人がよくやったことを覚えておいてください.