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 로 돌려주면!
잘 실행된다.