npm <- 많은 모듈을 사용할 수 있는 도구
js는 브라우저에서 실행할 수 있는 언어임 그러나 기존에 이미 Node.js를 다운받았기 때문에 브라우저 콘솔창이 아닌 터미널에서 바로 실행할 수 있음.
npm init //npm을 실행하겠다. 모듈을 정리할 수 있음
npm install figlet - g //figlet 모듈을 전역으로 내 컴퓨터 전체에 다운을 받겠다
npm uninstall figlet //안 쓸거니 삭제한다
package.json >> 대략적인 dependencies
package-lock.json >> 모듈에 대한 자세한 설명
var figlet = require('figlet'); //figlet이라는 단어를 요구하다
//var 중복 선언 가능, 마지막에 할당된 값을 출력함
//let 중복 선언 불가능, 초기화해서 재할당 가능
//const 중복 선언 불가능, 재할당 불가능 (변하지 않는 값)
//figlet변수 사용
figlet('Hello?', function(err, data){
if(err){
console.log('Something went wrong');
console.dir(err);
retrurn;
}
console.log(data);
});
실행 결과
웹 프레임워크 : 클라이언트에서 요청을 했을 때 서버단에서 요청을 받고 다시 클라이언트로 응답을 보내는 것
app.get('/dog', (req, res) => {
res.send({'sound' : '멍멍'}); //JSON형식으로 보내기
});
app.get('/cat', (req, res) => {
res.send({'sound' : '야옹'});
});
// 미들웨어 설정
app.use(express.json());
// 임시로 데이터를 저장할 배열
let posts = [];
// get메서드로 저장된 데이터 조회
app.get('/posts', (req, res) => {
res.json(posts);
});
// post메서드로 새로운 데이터 생성
app.post('/posts', (req, res) => {
const { title, content } = req.body;
const newPost = { id: Date.now(), title, content };
posts.push(newPost);
res.status(201).json(newPost);
});
포스트맨으로 테스트
http://localhost:200/posts 로 접속하여 조회
npm install mysql2
App.js에 아래 코드 추가
const mysql = require('mysql2/promise'); //모듈을 가져와라
//mysql2의 promise는 MySQL과의 비동기적인 상호작용을 가능하게 함
const pool = mysql.createPool({ //mysql와 연동하는 pool
//createPool 함수로 호스트, 포트, 사용자 이름, 비밀번호, 데이터베이스 등의 연결 정보를 설정
host: 'localhost',
port: '3306',
user: 'root',
password: 'abcd1234',
database: 'userdb'
});
const getConn = async() => {
//pool.getConnection 함수는 async/await 구문을 사용하여 비동기적으로 동작
return await pool.getConnection(async (conn) => conn);
};
app.get('/db', async (req, res) => {
//await 키워드를 사용하여 getConn 함수의 비동기 작업이 완료될 때까지 기다림
const conn = await getConn();
//SQL 쿼리를 정의
const query = 'select * from exam;';
//conn.query 함수를 사용하여 SQL 쿼리를 실행
//쿼리의 결과는 rows 변수에 할당
let [rows, fields] = await conn.query(query, []);
//사용이 완료된 연결을 커넥션 풀에 반환 다른 요청에서 재사용할 수 있음
conn.release();
//클라이언트에 전달
res.send(rows);
});
db에 예제 데이터 값 넣기
실행결과