카페24 node.js + mysql + unity 연동 (CRUD, RestfulAPI)
node.js 호스팅 받기
git설치
https://help.cafe24.com/cs/cs_manual_view.php?idx=46&page=1&categoryIdx=509&s_key=&s_value=&man_no=1
node.js 설치
설치 확인
앱생성
node.js 앱 생성/관리
- 앱 기본 실행 파일명
앱 기본 실행 파일명은 web.js 입니다. - 앱 이름 만들기
앱 이름은 영문 32자 이내로 생성할 수 있습니다.
앱 이름으로 무료 아이디가 만들어지기 때문에, 다른 사람이 사용하고 있는 앱 이름은 사용할 수 없습니다. - 앱 도메인
앱에서 사용하는 도메인은 “앱이름.cafe24app.com”으로 자동 생성되며, 필요에 따라 도메인을 추가 연결할 수 있습니다. - 앱 실행/중지
서버로 소스를 push 하신 후에는 서버를 중지 후 재실행 해주시기 바랍니다. - Key 할당
로컬 PC에서 Puclic Key를 생성한 후 등록하여 할당해 주시기 바랍니다.
public key 생성
https://help.cafe24.com/cs/cs_manual_view.php?idx=46&page=1&categoryIdx=509&s_key=&s_value=&man_no=1
public key 등록
public키 설정
visual code 설치
https://code.visualstudio.com/
프로젝트 폴더 만들기
Visual Code에서 프로젝트 열기
예제 Hello World 실행
postman 설치
wamp 설치 (mysql)
https://bitnami.com/stack/wamp/installer
mysql 접속
데이터 베이스 확인
show databases;
database 생성
create database testdb;
database 사용
use testdb;
테이블 만들기
create table users(
id int(11) unsigned not null auto_increment,
user_id int(10) unsigned not null,
user_name varchar(255) not null,
primary key(id)
);
테이블 구조 보기
desc users;
git 설정
git init
git remote add origin (repository)
https://github.com/jeonghwan-kim/git-usage
git add -A
git commit -m "upload"
git push origin master
비밀번호 필요 (public key)
서버 재시작 하지 않았을 경우 또는 포트 틀릴때 에러
포트 바꿔서 다시 올리고 재실행
브라우저 확인
npm 설치
https://docs.npmjs.com/cli/install
npm init
express설치
https://www.npmjs.com/package/express
npm install express --save
express모듈로 서버 실행
git add -A
git commit -m "express"
git push origin master
노드 서버 재시작
브라우저 확인
mysql
추가
https://www.w3schools.com/sql/sql_insert.asp
insert into users ( user_id, user_name ) values (123, "hong");
확인
select * from users;
제거 https://www.w3schools.com/sql/sql_delete.asp
유저 추가
유저 수정 https://www.w3schools.com/sql/sql_update.asp
node.js 에서 구현 하기
mysql 접속 https://www.w3schools.com/nodejs/nodejs_mysql.asp
카페24 mysql에 접속하기
db_info.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | module.exports = ( function(){ return { local : { host:"localhost", port:"3306", user:"root", passworld:"000000", database:"testdb" }, dev:{ host:"10.0.0.1", port:"3306", user:"smilejsu82", passworld:"asdqwe123", database:"testdb" } } } )(); | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | const mysql = require('mysql'); const conf = require('./db_info').dev; module.exports = function(){ return { init: function(){ return mysql.createConnection({ host: conf.host, port: conf.port, user: conf.user, password: conf.passworld, database: conf.database }); }, test_open: function(con){ con.connection((err)=>{ if(err){ console.err('err' + err); }else{ console.info('connected!'); } }); } } }; | cs |
web.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | const express = require('express'); const app = express(); var mysql_dbc = require('./db_con')(); app.use(express.json()); app.get('/', (req, res)=>{ res.send("connected."); }); app.listen(8004, ()=>{ console.log("server started!"); }); | cs |
git add -A
git commit -m "mysql"
git push origin master
node서버 재시작
브라우져 결과 확인
검색 (GET)
추가 (POST)
수정 (PUT)
제거 (DELETE)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | var express = require('express'); var app = express(); var mysql_dbc = require('./db_con')(); var body_parser = require('body-parser'); //app.use(body_parser()); app.use(express.json()); app.get('/', (req, res)=>{ res.send("connected."); }); app.get('/users', (req, res)=>{ var connection = mysql_dbc.init(); mysql_dbc.test_open(connection); var query = "select * from users"; connection.query(query, (err, result, fields)=>{ if(err) throw err; console.log(result); connection.end(); res.send(result); }); }); app.post('/addUser', (req, res)=>{ console.log(req.body); var user_id = req.body.user_id; var user_name = req.body.user_name; console.log(user_id, user_name); var connection = mysql_dbc.init(); mysql_dbc.test_open(connection); var query = 'insert into users (user_id, user_name) values (?, ?)'; var params = [user_id, user_name]; connection.query('select count(*) as total from users where user_name = ?', [user_name], (err, result)=>{ if(err) throw err; console.log(result[0].total); if( result[0].total == 0 ) { connection.query(query, params, (err, result, fields)=>{ if(err) throw err; console.log(result); }); }else{ res.json( { cmd: 1000, message: "duplicated user_name" } ); } connection.end(); }); }); app.put('/updateUser/:user_id', (req, res)=>{ console.log(req.body, req.params.user_id); var user_id = req.params.user_id; var user_name = req.body.user_name; console.log(user_id, user_name); var connection = mysql_dbc.init(); console.log(connection); mysql_dbc.test_open(connection); connection.query('select count(*) as total from users where user_id = ?', user_id, (err, result)=>{ if( result[0].total == 0 ) { res.json({ cmd: 1001, message: "can not found user" }); }else{ var query = 'update users set user_name = ? where user_id = ?'; var params = [user_name, user_id]; connection.query(query, params, (err, result, fields)=>{ if(err) throw err; console.log(result); }); } }); }); app.delete('/deleteUser/:user_id', (req, res)=>{ console.log(req.body, req.params.user_id); var user_id = req.params.user_id; var user_name = req.body.user_name; console.log(user_id, user_name); var connection = mysql_dbc.init(); console.log(connection); mysql_dbc.test_open(connection); connection.query('select count(*) as total from users where user_id = ?', user_id, (err, result)=>{ if( result[0].total == 0 ) { res.json({ cmd: 1001, message: "can not found user" }); }else{ var query = 'delete from users where user_id = ?'; var params = [user_id]; connection.query(query, params, (err, result, fields)=>{ if(err) throw err; console.log(result); return res.status(200);//.json({error: 'Unknown user'}); }); } }); }); app.delete('/deleteAllUsers', (req, res)=>{ console.log(req.body, req.params.user_id); var connection = mysql_dbc.init(); mysql_dbc.test_open(connection); var query = 'delete from users'; connection.query(query, (err, result, fields)=>{ if(err) throw err; console.log(result); return res.status(200);//.json({error: 'Unknown user'}); }); }); app.listen(8004, ()=>{ console.log("server started!"); }); | cs |