app.get("/boardWrite", (req,res) =>{
res.sendFile(__dirname+"/public/boardWrite.html"); //sendredirect와 같은 형식
});
index_express.js로 이동해서 새로운 가상 경로를 하나 추가해준다

서버 가동을 했는데 이렇게 에러가 난다?
node와 mysql통신을 하는데, 통신하는 방식이 조금 다르다. 그래서 방식을 맞출거에용
select host,user,plugin,authentication_string from mysql.user;
mysql열어서 root가 가지고있는 인증정보를 확인할 필요가 있다.
쿼리 구문을 작성해서 인증정보를 볼 수있는데 이 정보를 조금 바꿔야 한다.
alter user 'root'@'localhost' identified with mysql_native_password by '1234';
이 구문을 통해서 정보를 바꿔주고 다시 확인해본다.

정보를 확인해보면 root가 native로 바뀐걸 볼 수있다.

다시 vscode로 돌아아ㅘ서 node 서버를 가동하면 정상적으로 작동되는 것을 알 수 있다.
const express = require('express'); // Express라는 웹 프레임워크를 불러오는 코드
const app = express(); // 익스프레스 가동시킬 준비 객체생성
const port = 3002; // 서버가 동작할 포트 번호 설정
// dbconn.js 파일을 불러와서 데이터베이스 연결 관련 함수들을 사용할 수 있도록 설정
var dbconn = require(__dirname+"/dbconn.js"); // 현재 실행 중인 파일의 디렉토리 경로로 dbconn.js 파일을 불러오기
var conn = dbconn.init(); // dbconn.init()을 호출하여 데이터베이스 연결 객체를 초기화하고, conn에 저장
dbconn.connect(conn); // 데이터베이스에 연결
// body-parser 모듈을 불러와서 HTTP 요청의 본문(body) 데이터를 처리할 준비
var bodyParser = require("body-parser"); // 데이터 추출하는 파서 사용
app.use(bodyParser.json()); // bodyParser안에 있는 제이슨 문서로 만들것이다.
app.use(bodyParser.urlencoded({extended:false})); //한글깨짐 방지
// '/style' 경로로 들어오는 요청에 대해 해당 경로에 있는 static 파일을 제공
app.use("/style",express.static(__dirname+"/style")); // 가상경로와 폴더 매칭 메인으로 들어오게 되면 해당되는 기본 위치에서 퍼블릭 폴더에 들어가게 매칭하는것.
// 메인 페이지 요청 처리 ("/" 경로로 요청이 들어오면)
app.get("/", (req,res) =>{
res.sendFile(__dirname+"/index.html"); //sendredirect와 같은 형식. 클라이언트에게 boardWrite.html 파일을 응답으로 보냄
});
// 게시글 작성 페이지 요청 처리 ("/boardWrite" 경로로 요청이 들어오면)
app.get("/boardWrite", (req,res) =>{
res.sendFile(__dirname+"/boardWrite.html"); //sendredirect와 같은 형식.클라이언트에게 boardWrite.html 파일을 응답으로 보냄
});
// 게시글 작성 처리 요청 (POST 방식)
app.post("/boardWriteAction",function(req,res){
var body = req.body; // 클라이언트로부터 받은 요청의 본문(body)을 변수 body에 저장
console.log(body); // 요청의 내용을 콘솔에 출력 (주로 디버깅 용도)
var sql ="insert into board(originbidx,depth,level_,subject,contents,writer,password,midx) values(null,0,0,?,?,?,?,101)";
var sql2 ="update board set originbidx =(select A.maxbidx from (select max(bidx) as maxbidx from board)A);"
var params = [body.subject,body.writer,body.contents,body.password]
console.log(sql);
conn.query(sql,params,function(err,results,fields){ // 쿼리 메서드를 사용해서
if(err) {
console.log(err);
}
console.log(results);
});
conn.query(sql2,params,function(err,results,fields){ // 쿼리 메서드를 사용해서
if(err) {
console.log(err);
}
console.log(results);
});
res.redirect("/"); // 메인으로 이동
});
// 서버를 실행하여 포트 3002에서 대기하도록 설정
app.listen(port,()=>{
console.log("server running~~~"); // 서버가 성공적으로 실행되면 콘솔에 출력
});
자꾸 경로를 바꾸게 되서 헷갈리니까 index_express.js 전체 코드

콘솔창에 node 서버 작동시켜서 글쓰기 화면에서 값을 입력하면 콘솔창에 내가 작성한 값이 뜬다.
// 게시글 작성 처리 요청 (POST 방식)
app.post("/boardWriteAction",function(req,res){
var body = req.body; // 클라이언트로부터 받은 요청의 본문(body)을 변수 body에 저장
console.log(body); // 요청의 내용을 콘솔에 출력 (주로 디버깅 용도)
var sql ="insert into board(originbidx,depth,level_,subject,contents,write,password,midx)
values(null,0,0,?,?,?,?,101)";
var sql2 ="update board set originbidx =(select A.maxbidx from (select max(bidx) as maxbidx from board)A);"
var params = [body.dubject,body.writer,body.contents,body.password]
console.log(sql);
conn.query(sql,params,function(err,results,fields){ // 쿼리 메서드를 사용해서
if(err) {
console.log(err);
}
console.log(results);
});
conn.query(sql2,params,function(err,results,fields){ // 쿼리 메서드를 사용해서
if(err) {
console.log(err);
}
console.log(results);
});
res.redirect("/"); // 메인으로 이동
});