1.0.37 • Published 3 years ago

@psyrenpark/express-lib v1.0.37

Weekly downloads
4
License
MIT
Repository
github
Last release
3 years ago

express-lib

제작이유

serverlessExpress에서 공통된 기능 배포시 불편함 해결위해 제작

iot 추가

사용법

새버전 공지시

각 프로젝트의 cloud9에서

cd /home/ec2-user/environment/server/ServerlessExpress
npm install --save @psyrenpark/express-lib
  • 이후 최신버전으로 변경되었는지 확인할것.

미들웨어 적용

var { awsMiddleware, httpMiddleware } = require("@psyrenpark/express-lib");

app.use(require(`${__dirname}/middleware/db`));
app.use(require(`${__dirname}/middleware/auth`));

// 미들웨어 db와 auth 다음
app.use(awsMiddleware); // aws 관련 함수
app.use(httpMiddleware); // 통신 관련 함수

회원 탈퇴

  • 서버 담장자는 클라이언트에서 유저 퇄퇴 기능을 요청 받을경우 아래와같이 작성할것
  • 유저의 탈퇴는 디비와 코그니토가 연동되어 있으므로 조심할것
  • 먼저 디비 해당유저의 정보를 비활성후 성공후 코그니토 deleteUser를 실행할것
  • deleteUser는 롤백기능이 없음
  • 클라이언트는 이 api가 성공후 꼭 반드시 로그아웃후 redux, context안의 유저 정보 정리할것
  • 서버관리자에게 USER_POOL_ID 관련 작업 요청할것
app.delete("/user/:user_no", async function (req, res) {
  var result = [];
  let transaction;

  if (req.user_no !== req.param.user_no) {
    res.status(403).send({ msg: "wrong" });
    return;
  }

  try {
    transaction = await req.sequelize.transaction();

    var qeury_Deactive = req.mybatisMapper.getStatement(
      "SQL",
      "USER_DEATIVE",
      {
        user_id: req.user_id,
        user_no: req.user_no,
      },
      { language: "sql", indent: "  " }
    );

    var deactiveUserData = await req.sequelize.query(qeury_Deactive, {
      transaction: transaction,
      type: req.sequelize.QueryTypes.SELECT,
    });

    if (deactiveUserData.length !== 1) {
      throw new Error("wrong params");
    }

    var deleteUserData = await req.cognito.deleteUser({
      //주의: 배포해야 지만 작동함 (권한필요)
      username: req.user_id, //코그니토 고유 id
    });

    await transaction.commit();

    res.json({
      msg: "ok",
    });
  } catch (error) {
    if (error) await transaction.rollback();
    res.status(403).send({ msg: "wrong", error: error });
  }
});

이메일 전송

app.post("/send_email", async function (req, res) {
  var param = {
    email: "test9999@ruu.kr", // req.user_info.email
    msg: "인증코드 <h2>123456</h2>", // html 문법 사용가능
    title: "싸이페어 인증메일입니다.", // 싸이페어 인증입니다.
    type: "HTML", // default   type : "TEXT"
  };

  try {
    var result = await req.ses.sendEmail(param);

    res.json({
      msg: "ok",
    });
  } catch (error) {
    res.status(403).send({ msg: "wrong", error: error });
  }
});

문자 전송

app.post("/send_sms", async function (req, res) {
  var param = {
    phone: "01000000000", //
    msg: "인증코드 123456",
    title: "싸이페어 인증문자입니다.",
  };

  try {
    var result = await req.sms.sendSMS(param);

    res.json({
      msg: "ok",
    });
  } catch (error) {
    res.status(403).send({ msg: "wrong", error: error });
  }
});

cdn clear

app.post("/clear_cdn", async function (req, res) {
  try {
    var nowDate = new Date();
    var nowTimestamp = "" + Math.round(nowDate);

    var params = {
      DistributionId: "E3NS7RWWXZFBWI", // 필요시 요청할 것
      InvalidationBatch: {
        CallerReference: nowTimestamp,
        Paths: {
          Quantity: "1",
          Items: [
            `/*`,
            // `public/test/result/${country}/${test}/${fileName}`,
          ],
        },
      },
    };

    var data = await req.cloudfront.clearCdn(params);

    console.log(data);
  } catch (error) {
    console.log(error);
  }

  res.json({
    msg: "test_test_test13-2 ok",
  });
});

푸쉬

s3 업로드

s3 인증 다운로드 링크

1.0.37

3 years ago

1.0.36

3 years ago

1.0.35

3 years ago

1.0.34

3 years ago

1.0.33

3 years ago

1.0.32

3 years ago

1.0.31

3 years ago

1.0.30

3 years ago

1.0.29

3 years ago

1.0.26

3 years ago

1.0.25

3 years ago

1.0.28

3 years ago

1.0.27

3 years ago

1.0.24

3 years ago

1.0.23

3 years ago

1.0.22

3 years ago

1.0.21

3 years ago

1.0.19

4 years ago

1.0.18

4 years ago

1.0.17

4 years ago

1.0.16

4 years ago

1.0.20

4 years ago

1.0.15

4 years ago

1.0.14

4 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.2

4 years ago

1.0.3

4 years ago

1.0.1

4 years ago