js-graphql,apollo用法(3)


https://velog.io/@any 1 ok/Nodejs-graphql,apollo用法(1)
このシナリオを見る前に、第1話のシナリオを見てみましょう.
graphsql、apolloの使用方法を超えてdbに接続しようとします.
まずlib/dbです.にある
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
      },
上のコードのようにsequelzeとしてresolver関数に戻ると!

正常に動作しています.