Module Loading ...es6 문법export, import
export function hello(){
} //내보내기
import hello from './hello.js' //불러오기
Common JS 문법module.export 내보내기(export)
require('이름') 불러오기 (import)
ex) const hello = require("./hello.js")
JSONJSON Formater을 이용하면 JSON을 코드 프로그램에서 보는 것과 유사한 스타일로 볼 수 있다.node.js 요소js를 실행할 수 있도록 나온 어플리케이션npm init → npm 패키지 초기화require(경로)createServer((req,res)=>{})methodAPI 요청 메소드GET : 데이터 조회POST : 데이터 등록PUT : 데이터 수정DELETE : 데이터 제거axios.get('경로');
axios.post('경로',{데이터});
axios.put('경로', {데이터} ,config]);
axios.delete('경로');
AxiosAxios는 node.js와 브라우저를 위한 Promise 기반 HTTP 클라이언트이다.
node.js에서 실행할 수 있다).node.js의 http 모듈을 사용하고, 클라이언트(브라우저)에서는 XMLHttpRequests를 사용한다.axios 설치 방법npm install axios
axios 사용법import axios from 'axios';
axios.get('/users/1')
axios.post('경로', { username: "green", id: "aa" })
json 및 modules등을 설치한다.npm init 지정npm install express 설치npm install cors 설치
npm install mysql설치
express서버에서mysql연동1. mysql 설치 2. create database shopping 3. create table products() 4. insert문으로 데이터 생성 5. express 서버에 mysql 설치 npm install mysql 6. mysql 라이브러리 불러오기 const mysql = require("mysql") 7. mysql 접속 생성 8. mysql.createConnection({ host: "localhost", user: "root", pasword: "1234", database: "shopping", port: "3306" }) 9. mysql 접속 conn.connect() 10. 쿼리 전송 conn.query("쿼리문",(err, result, filed)=>{ //처리할 코드 }) app.get('/products', (req, res)=>{ conn.query("쿼리문",(err, result, filed)=>{ res.send(result) }) })
index.js에 기본 구문 작성// express server 만들기
const express = require("express");
const cors = require("cors");
const mysql = require('mysql');
// server 생성
const app = express();
//프로세서의 주소 포트번호 지정
const port = 8080;
//브라우저의 CORS 이슈를 막기 위해 사용
app.use(cors());
//json 형식의 데이터를 처리하도록 설정
app.use(express.json());
// mysql 연결 생성
const conn = mysql.createConnection({
host: "localhost",
user: "root",
password: "1234",
port: "3306",
database: "sample"
})
// 선 연결
conn.connect();
데이터베이스 "localhost"와 연결된 서버가 생성되었다.
app 서버에 데이터베이스의 데이터 출력하기//posts 배열을 전송한다.
// req에는 요청정보가 담긴다.
// res에는 응답정보가 담긴다.
app.get("/special",(req,res)=>{
conn.query("select * from event where e_category = 'special'",
(error,result,fields)=>{
res.send(result)
})
})
// localhost:8080/special/1 이라면
// req = {params:{no:1}}
app.get("/special/:no",(req,res)=>{
const {no}= req.params;
conn.query(`select * from event where e_category= 'special' and e_no=${no}`,
(error,result,fields)=>{
res.send(result)
})
})
app 서버를 통해 데이터베이스에 데이터 넣기 const addMember=()=>{
axios.post(`${API_URL}/join`,formData)
.then(res=>{
console.log('등록되었습니다.')
})
.catch(e=>{
console.log(e);
})
}
return(
<form onSubmit={addMember}>
)
app.post("/join", async (req, res)=>{
const {m_name}= req.body;
conn.query(`insert into member(m_name) values('${m_name}')`,
(err,result,fields)=>{
result&&res.send("등록되었습니다."); //result가 true일때만 res.send 반환
})
})
app 서버를 통해 데이터베이스의 데이터 수정하기const onupdate=(id)=>{
axios.patch(`${serveraddress}addaccounttitle/${id}`,formdata)
.then(res=>{
alert("수정되었습니다.")
window.location.reload()
})
.catch(e=>console.log(e))
}
return(
data.map(d=><button onClick={()=>onupdate(d.id)}>M</button>)
)
app.patch('/addaccounttitle/:id',(req,res)=>{
const {id} = req.params;
const {text, fixed} = req.body;
conn.query(`update titletable set \`desc\`='${text}',
isFixed='${fixed}' where id='${id}'`
,(error, result, fields) => {
res.send(result);
})
})
app서버의 기본주소(port)에서 listen요청을 받았을 시// 터미널에 '서버가 동작하고 있습니다.'을 출력한다.
app.listen(port, ()=>{
console.log("서버가 동작하고 있습니다.");
})
errno : 1045mysql.createConnection() 내의 작성 오류errno : -4091err 발생 X, 출력 Xsql문 작성 오류 등sql문 의 테이블명 혹은 컬럼명으로 desc 와 같은 명령어가 지정된다.sql문 내에서 values를 values()로 주고 sql, [값 지정], callback() 의 값 지정에서 값을 지정Postman서버 테스트 할 수 있는 프로그램
Download Postman
https://www.postman.com/downloads/