서버는 간편하게 Node.js 환경에서 개발하기로 했고 express 프레임워크를 사용하기로 회의시간에 결정했다
어플리케이션 골격을 만들기 위해 사용한 express-generator
https://expressjs.com/ko/starter/generator.html
해당 페이지를 참조하여
├── app.js
├── bin
│ └── www
├── package.json
├── public
│ ├── images
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes
│ ├── index.js
│ └── users.js
└── views
├── error.pug
├── index.pug
└── layout.pug
이런 디렉토리 구조를 갖는 단순한 어플리케이션을 받아왔다
bin/www도 잘 모르겠고 pug도 처음보지만 일단 개발해보기루...
모르는 게 아직 너무 많아서 하나하나 다 공부하다가는 아무것도 못하고 지칠 것만 같다ㅋㅋㅋ
일단 데이터베이스를 연결해보기로 했다
서버의 루트 폴더에 .env라는 이름을 갖는 다음과 같은 파일을 만든다
물론 env파일을 안쓰고 코드에 바로 비밀번호와 데이터베이스 이름을 써도 되지만 그러면 깃에 올릴수가 없으니 이러한 방법을 사용했다
그 후 db.js 파일을 이렇게 만들어주었다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
var mysql = require("mysql");
require('dotenv').config();
// database setup
var connection = mysql.createConnection({
host : process.env.DB_HOST,
user : process.env.DB_USER,
password : process.env.DB_PW,
database : process.env.DB_NAME
});
connection.connect(function(err){
if(err) throw err;
});
module.exports = connection;
|
cs |
mysql 설치는 팀원이 해 주었다
env 파일에 저장해둔 host,user,pw 등을 가져다가 쓸 수 있다
connection을 연결해 준 후 잘 돌아가는 지 확인해보았다
처음에는 에러가 나면서 연결이 안되는 문제가 발생했다
ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
이러한 에러가 발생했었는데 다음과 같이 해결했다
다행히 바로 해결되었다!!
연결 되는 것을 확인하고 테스트 쿼리들도 돌려보았다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
var express = require('express');
var router = express.Router();
var db = require('./db');
/* GET all the problems*/
router.get('/', function(req, res) {
query = "SELECT * FROM Problem";
db.query(query, function (err, results, fields) {
if(err) {
console.log(err);
}
console.log(results);
res.send(results);
});
});
/* Get a problem by id */
router.get('/:id', function(req, res) {
query = "SELECT * FROM Problem WHERE problem_id=" + req.params.id;
db.query(query, function (err, results, fields) {
if(err) {
console.log(err);
}
console.log(results);
res.send(results);
});
});
module.exports = router;
|
cs |
예시로 넣어둔 문제들을 잘 가져오는 것을 확인할 수 있었다
query만 수정해가면서 앞으로 비슷하게 사용하면 될 듯 하다
'사이드 프로젝트' 카테고리의 다른 글
트렌드 테스트 프로젝트 - 4. sequelize 활용하여 데이터 다루기 (3) | 2022.03.19 |
---|---|
트렌드 테스트 프로젝트 - 3. react에서의 nodejs api 사용, axios (0) | 2022.03.03 |
트렌트 테스트 프로젝트 - 1. aws 인스턴스 생성 및 사용자 추가 (0) | 2022.02.17 |