nodejs로 rest api 서버 배포하기

유성·2022년 10월 13일
0

개발

목록 보기
1/1

초간단 rest api서버 만들기

회사에서 집에 가고 싶은김에 글 작성해본다.

현재 환경
os : windows10
cpu : i7 10700F
ram : 32GB
nodejs : 15.3.0
개발자 : 멍청함


나는 항상 개발할 때 프로젝트 폴더 파고
파일트리 만들고 초기 세팅하는걸 싫어하는데
"express" 쓰면 된다고 해서 편하게 했다


express.js 설치

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도 가능하고 활용도가 높으니 상황에 맞게 처리하면 되겠다.

끝에 너무 설명이 빈약하다면 차후 수정하겠다 지금은 밥먹고 와서 너무 졸리다..

profile
VIDA

0개의 댓글