Nodejs - graphql,apollo 사용법(3)

any1ok·2021년 9월 20일
0

https://velog.io/@any1ok/Nodejs - graphql,apollo 사용법(1)
이 스크립트를 보기전에 첫회차인 위스크립트를 보도록 하자!

graphql,apollo 사용법 에 넘어서 db 와 연결해보려 한다.

먼저 lib/db.js 에

const path = require("path");
const Sequelize = require("sequelize");
const mybatisMapper = require("mybatis-mapper");
const db = {};

const sequelize = new Sequelize(
    DB_URL,
    {
      dialect: "postgres",
      dialectOptions: {
        statement_timeout: 5000,
        idle_in_transaction_session_timeout: 5000
      },
      define: {},
      pool: {
        max: 60,
        min: 0,
        idle: 10000,
        acquire: 20000
      },
      logging: console.log,
  
    }
  );

  const sqlPath = path.join(__dirname, "..", ".", `/sql`);
  mybatisMapper.createMapper([`${sqlPath}/memo.xml`]);

    db.sequelize = sequelize;
    db.mybatisMapper = mybatisMapper;
  
  module.exports = db;
  

pg 접속은 기본으로 해주고

mybatisMapper 는 필자가 자주사용하는 쿼리 매핑 라이브러리다.
사용하기 간편하니 자주써보도록하자.

server.js 에서

const db = require(`${__dirname}/lib/db`);

사용을위해 들고와준다

 Query: {
      memos: async () =>{ 
        const memo_all = db.mybatisMapper.getStatement(
          "MEMO",
          "SELECT_MEMO_ALL.SELECT",
          {
          },
          { language: "sql", indent: "  " }
        )
        console.log(memo_all);
        var memos = await db.sequelize.query(memo_all, {
          type: db.sequelize.QueryTypes.SELECT,
        });
        return memos
      },

위 코드처럼 resolver 함수에 sequelize 로 돌려주면!


잘 실행된다.

profile
백엔드 개발자

0개의 댓글