카페24 node.js + mysql + unity 연동 (CRUD, RestfulAPI)

Sever/Node.js 2018. 10. 22. 12:00
반응형

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 설치 

https://nodejs.org/ko/


설치 확인 





앱생성 



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 실행 

https://nodejs.org/ko/about/



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



db_con.js
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


반응형

'Sever > Node.js' 카테고리의 다른 글

jwt 스터디 1차  (0) 2019.01.02
jwt  (0) 2019.01.01
Node.js Passport login  (0) 2018.12.20
Study : Express, RESTful API  (0) 2018.10.24
node.js + mysql + Unity 연동  (0) 2018.10.19
: