회사에서 집에 가고 싶은김에 글 작성해본다.
현재 환경
os : windows10
cpu : i7 10700F
ram : 32GB
nodejs : 15.3.0
개발자 : 멍청함
나는 항상 개발할 때 프로젝트 폴더 파고
파일트리 만들고 초기 세팅하는걸 싫어하는데
"express" 쓰면 된다고 해서 편하게 했다
cmd를 실행할 때는 항상 관리자 권한으로 실행을 생활화 하자.
사실 보안적인 부분이나 좋지 않을 수 있지만 내 알빤가 회사컴이지 내컴 아니다.
-- cmd --
npm install express-generator -g
설치가 완료되고나면
>express testtt
warning: the default view engine will not be jade in future releases
warning: use `--view=jade' or `--help' for additional options
create : testtt\
create : testtt\public\
create : testtt\public\javascripts\
create : testtt\public\images\
create : testtt\public\stylesheets\
create : testtt\public\stylesheets\style.css
create : testtt\routes\
create : testtt\routes\index.js
create : testtt\routes\users.js
create : testtt\views\
create : testtt\views\error.jade
create : testtt\views\index.jade
create : testtt\views\layout.jade
create : testtt\app.js
create : testtt\package.json
create : testtt\bin\
create : testtt\bin\www
change directory:
> cd testtt
install dependencies:
> npm install
run the app:
> SET DEBUG=testtt:* & npm start
라고 뜨면서 밑에 cd testtt 하고 npm install 하라고 시킨다
시킨대로 하자
폴더에 들어가고 뒤에 node를 설치 완료하고
npm start
입력하면 바로 http://www.localhost:3000/ 로 접속한다.
그러면 이렇게 배포되는걸 볼 수 있는데
조금 안좋은게 핫픽스가 안되서 매번 코드 수정하면 서버 재실행을 해야한다.
좀 꾸졌음...
이걸 이제 DB와 연동된 rest api로 배포하려면
코드만 좀 고치면 된다
https://www.sqlitetutorial.net/sqlite-nodejs/
여기보고 따라하면 되는데
더 간단하게 하자면
express 프로젝트는 app.js로 구동되고 거기서 라우터들을 호출하는 구조다.
그렇기에 app에서 디비에 접근하는 코드를 넣으면 되는데
그전에 sqlite를 설치해야한다.
// cmd
npm install sqlite3
설치하고나면 호출하면 되는데
// 프로젝트 내 js파일 원하는곳에
const sqlite3 = require('sqlite3').verbose();
let db = new sqlite3.Database('./db/chinook.db', sqlite3.OPEN_READWRITE, (err) => {
if (err) {
console.error(err.message);
}else{
console.log('Connected to the chinook database.');
}
});
db.serialize(() => {
db.each(`SELECT PlaylistId as id,
Name as name
FROM playlists`, (err, row) => {
if (err) {
console.error(err.message);
}
rowId = row.id;
rowVal = row.name;
});
});
db.close((err) => {
if (err) {
console.error(err.message);
}
console.log('Close the database connection.');
});
// 여기서 get을 통해 보내준다
router.get('/', function(req, res, next) {
res.send(rowVal);
});
DB를 열었다가 정보를 빼내고 DB를 닫고 그걸
해주면 이제 rest 주소로 접근했을때 해당 정보를 넘겨주게 된다.
해당 기능은 json으로 처리할 수 도 있고 String도 가능하고 활용도가 높으니 상황에 맞게 처리하면 되겠다.
끝에 너무 설명이 빈약하다면 차후 수정하겠다 지금은 밥먹고 와서 너무 졸리다..