1. npm 설치
npm i --save mysql
2. DB 연결
let mysql = require("mysql");
let connection = mysql.createConnection({
host: "localhost", // DB 서버주소
port: "3306", // 포트 번호
user: "root", // 사용자 이름
password: "1234", // 비밀번호
database: "db_test", // 데이터베이스 이름
});
connection.connect();
➕ Mysql 계정 설정 명령어 모음
로그인 | mysql -u root -p |
사용할 DB 선택 | use mysql |
계정 정보 확인(user 테이블) | SELECT user, host, authentication_string from user |
계정 추가 | CREATE USER '계정'@'ip addr' IDENTIFIED WITH mysql_native_password by '비밀번호' |
권한 추가 | GRANT ALL PRIVILEGES ON *.* TO '계정'@'ip addr' |
권한 확인 | SHOW GRANTS FOR '계정'@'ip addr' |
권한 삭제 | REVOKE ALL ON *.* FROM '계정'@'ip addr' |
계정 삭제 | DROP USER '계정'@'ip addr' |
적용 | FLUSH PRIVILEGES |
✅ 오류 시 노란 배경의 명령어 확인하기!
3. SELECT
// SELECT
db.query(`SELECT * FROM TOPIC`, (error, topics) => {
let title = "CREATE";
let list = template.list(topics);
let html = template.HTML(
title,
list,
"",
`<form action="/create_process" method="post">
<p>
<input type="text" name="title" placeholder="INPUT TITLE">
</p>
<p>
<textarea cols="50" rows="10" name="description" placeholder="INPUT DESCRIPTION"></textarea>
</p>
<p>
<input type="submit" value="CREATE">
</p>
</form>`
);
response.writeHead(200);
response.end(html);
});
4. INSERT
// INSERT
// 작성 화면
else if (pathname === "/create") {
db.query(`SELECT * FROM TOPIC`, (error, topics) => {
let title = "CREATE";
let list = template.list(topics);
let html = template.HTML(
title,
list,
"",
`<form action="/create_process" method="post">
<p>
<input type="text" name="title" placeholder="INPUT TITLE">
</p>
<p>
<textarea cols="50" rows="10" name="description" placeholder="INPUT DESCRIPTION"></textarea>
</p>
<p>
<input type="submit" value="CREATE">
</p>
</form>`
);
response.writeHead(200);
response.end(html);
});
}
// 처리
else if (pathname === "/create_process") {
let body = "";
request.on("data", (data) => {
body += data;
});
request.on("end", () => {
let post = qs.parse(body);
db.query(
`INSERT INTO TOPIC(title, description, created, author_id) VALUES(?, ?, NOW(), ?)`,
[post.title, post.description, 1],
(error, result) => {
response.writeHead(302, { location: `/?id=${result.insertId}` });
response.end();
}
);
});
}
5. UPDATE
// UPDATE
let body = "";
request.on("data", (data) => {
body += data;
});
request.on("end", () => {
let post = qs.parse(body);
db.query(
`UPDATE TOPIC SET TITLE = ?, DESCRIPTION = ? WHERE ID = ?`,
[post.title, post.description, post.id],
(error, result) => {
response.writeHead(302, { location: `/?id=${post.id}` });
response.end();
}
);
});
6. DELETE
let body = "";
request.on("data", (data) => {
body += data;
});
request.on("end", () => {
let post = qs.parse(body);
db.query(`DELETE FROM TOPIC WHERE ID = ?`, [post.id], (error, result) => {
response.writeHead(302, { location: `/` });
response.end();
});
});
'LAMP > JavaScript' 카테고리의 다른 글
[JS] Callstack, Event Loop (0) | 2024.08.09 |
---|---|
[JS] Promise & async/await 팁 (0) | 2024.08.05 |
[Node.js] 기본 설정 (0) | 2024.04.15 |
[Node.js] sanitizzeHtml (0) | 2024.04.05 |
[Node.js] Node.js 환경변수 설정 (0) | 2024.04.03 |