티스토리 뷰

반응형

app.js

const server = app.listen(port, () => {
  console.log('Server is started. port ${port}.');
});

const db = {
  database: "dev",
  connectionLimit: 10,
  host: "192.168.0.1",
  user: "root",
  password: "1111"
};

const dbPool = require('mysql').createPool(db);

app.post('/api/login', async (req, res) => {

});

데이터베이스에 연결 준비를 합니다.

 

 

sql.js

module.exports = {
   findAllUser: {
     query : `select * from user`
   },
   findUserById: {
     query : `select * from user where id = ?`
   },
   addUser: {
     query : `insert into user (name, email, level)
       values (?, ?, ?)`
   }
};

실제 쿼리가 작성되는 파일입니다. '?'를 사용하여 파라미터를 받을 수 있습니다.

 

app.js

const sql = require('./sql.js');

app.post('/api/:alias', async (req, res) => {
  try {
    res.send(await req.db(req.params.alias));
  } catch(err) {
    res.status(500).send({
      error: err
    });
  }
});

const req = {
  async db(alias, param = [], where = '') {
    return new Promise((resolve, reject) => 
      dbPool.query(sql[alias].query + where, param, (error, rows) => {
        if(error) {
          if(error.code != 'ER-DUP_ENTRY') {
            console.log(error);
          }
          resolve({ error });
        }
        else {
          resolve(rows);
        }
    }));
  }
};

쿼리 요청을 보내는 부분으로 에러가 발생하였을 때 콘솔에 출력해주는 소스입니다.

 

 

Terminal

$ node app.js

 

반응형
댓글
공지사항