728x90
서버를 구성하기 위해서는 기존에 만들었던 클라이언트 폴더와 별개로 다른 폴더를 만들어 줘야한다.
1️⃣. 서버 폴더로 터미널을 연 뒤 아래의 코드를 작성
npm init -y
2️⃣. 관련된 모듈들을 설치하자
npm i express mysql nodemon
(여기서 다른 블로그 글들에서는 body-parser도 설치해주는데 최신 express 버젼에서는 이미 포함되어있다)
3️⃣. index.js를 작성하자(package.js에 script.main에 보면 index.js로 되어있으면 index.js 를 작성하자)
const express = require('express');
const app = express();
const PORT = process.env.port || 3001;
app.listen(PORT, ()=>{
console.log(`running on port ${PORT}`);
});
위의 코드를 터미널에 실행 시켜보자
node index.js
서버가 정상적으로 동작한다면 다음 단계로 넘어가자.
4️⃣. package.json의 scripts에 코드 추가
"start": "node index.js",
"dev": "nodemon index.js"
이제는 node run start(dev)을 입력하면 위의 동작을 하게된다.
5️⃣. 서버가 동작하는지 확인 후 DB와 연결
사용할 DB는 MariaDB이다
(MariaDB는 MySQL이 오라클에 인수되며 MySQL 개발자들이 만든 동작이 거의 동일하게 동작하는 DB)
이 때, port 는 DB가 사용하는 port를 입력해줘야 한다.(이것 때문에 오류로 고생했다....)
const express = require('express');
const mysql = require('mysql');
const app = express();
const port = 3307;
const db = mysql.createConnection({
host: '127.0.0.1', // localhost라고 하게 되면 에러가 뜬다. 127.0.0.1과 localhost는 같다는거 같다.
user: 'root',
password: 'oo991128',
database: 'INMATE',
port: port // DB가 사용하는 포트 이용
});
db.connect();
// 기본 주소로 접속 시 서버는 아래의 동작을 한다.
app.get("/", (req, res) => {
// mysql에서 query를 이용해 Table의 정보를 SELECT해오는 query를 입력
db.query("SELECT * FROM restaurant_list", (err, result) => {
if (err) {
res.send(err, 'check');
}
console.log(result)
})
});
app.listen(port, () => {
console.log(`running on port ${port}`);
});
사실 이 코드를 작성하기 전까지 오류가 발생했다.
이제는 서버는 구성을 했으니 이제 정보를 가져와 리스트를 구성해보자.
추후에는 다른 정보들도 DB에서 가져와 다룰 수 있도록 해보자.
728x90
'프로젝트 > INMATE 인천 맛집 소개' 카테고리의 다른 글
INMATE / Info 페이지 구성 (0) | 2022.10.08 |
---|---|
INMATE / full-page-scroll 연습 (0) | 2022.09.28 |
INMATE / express 서버에서 웹 불러오기 (0) | 2022.09.27 |
인천 맛집 소개 INMATE (Kakao Map API 활용) (0) | 2022.09.05 |
Git 사용법 (repository 생성, 연결, branch 사용) (0) | 2022.07.01 |