json 데이터를 Post 전송해서 mysql.user 테이블의 정보를 가져온다.
npm install mysql
const mysql = require('mysql');
let _dbConn = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mysql'
});
function _dbQuery(sqlString, values) {
if (!values) values = [];
return new Promise((resolve, reject) => {
_dbConn.query(sqlString, values, (err, results) => {
if (err) {
reject(err);
return;
}
resolve(results);
});
});
}
function _dbQueryOne(sqlString, values) {
if (!values) values = [];
return new Promise((resolve, reject) => {
_dbConn.query(sqlString, values, (err, results) => {
if (err) {
reject(err);
return;
}
resolve(results[0]);
});
});
}
export { _dbConn, _dbQuery, _dbQueryOne }
import { Controller, Get, Body, Post } from '@nestjs/common';
import { UserService } from './user.service';
@Controller('user')
export class UserController {
constructor( private userService:UserService ){}
@Post("/getUser")
getUser(@Body() userData){
return this.userService.getUser(userData);
}
}
import { Injectable } from '@nestjs/common';
import { _dbConn, _dbQuery } from 'src/const/db';
@Injectable()
export class UserService {
async getUser(userData){
let userId = "exoluse";
return _dbQuery(`select * from user where user = '${userData.userId}'`, [])
}
}
mysql.createPool 을 하면... pool.getConnection 으로 커넥션을 가져와서 쿼리를 날리는데... 내가 구현한건 mysql.createPool.query 인데... 저렇게 해도 되는건가?
npm mysql 공식사이트 (https://www.npmjs.com/package/mysql2)에 의하면 커넥션 풀의 쿼리가 resolve 되면 자동으로 release 된다고 한다.
// For pool initialization, see above
pool.query("SELECT field FROM atable", function(err, rows, fields) {
// Connection is automatically released when query resolves
})
해결됨 ㄳ