반응형
SMALL
- app.js
const express = require('express');
const app = express(); // 서버만들기
const signUpRouter = require('./signUpRouter'); // 라우터 객체 생성
app.use(express.json()); // json형식으로 받는다.
app.use("/member", signUpRouter); // 수정: 올바른 경로 지정
app.get('/', (req, res)=>{
//응답
res.send("hello world");
});
app.listen(8080, ()=>{
console.log("서버가 시작되었다.");
}); // 서버를 열어준다. 8080포트로
- dbConnect.js
const mySql2 = require('mysql2');
const conf = {
host : 'localhost',
user : 'root',
password : '0000',
database : 'game_db'
};
const pool = mySql2.createPool(conf);
function getPool(){
return pool.promise();
}
console.log(pool);
//test
async function testQuery()
{
try{
const promisePool = pool.promise();
const [rows,fields] = await promisePool.query('select * from member');
console.log(rows);
res.json({
cmd : 200,
message : "회원가입 성공",
});
}
catch(err)
{
console.log(err);
if(err.errno == 1062){
cmd : 1001;
message: "중복된 아이디입니다.";
}
}
}
// testQuery(); // 비동기 함수 호출
module.exports = getPool; // 모듈로 만들어서 내보내기
- signUpRouter.js
const express = require('express');
const getPool = require('./dbConnect');
const router = express.Router();
router.post('/', async (req, res) => {
const { id, nickname, password } = req.body;
try {
const insertQuery = 'INSERT INTO member VALUES (?, ?, ?, current_timestamp());';
const pool = getPool();
const [rows, fields] = await pool.query(insertQuery, [id, nickname, password]);
console.log(rows);
res.json({
cmd: 200,
message: '회원등록 성공'
});
} catch (err) {
console.log(err.errno);
if (err.errno == 1062) {
// Duplicated id
console.log('이미 가입된 아이디 입니다.');
res.json({
cmd: 1001,
message: '이미 가입된 아이디 입니다.'
});
} else {
res.status(500).json({
cmd: 1002,
message: '회원 등록에 실패했습니다.'
});
}
}
});
module.exports = router;
UnityWebRequest - Unity 매뉴얼
UnityWebRequest는 HTTP 요청을 구성하고 HTTP 리스폰스를 처리하기 위한 모듈식 시스템을 제공합니다. UnityWebRequest 시스템의 주요 목표는 Unity 게임이 최신 웹 브라우저 백 엔드와 상호작용할 수 있도
docs.unity3d.com
유니티 웹 리퀘스트 클래스
using Newtonsoft.Json;
using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.Networking;
public class TestMain : MonoBehaviour
{
public class user_info
{
public string id;
public string nickname;
public string password;
}
private IEnumerator Start()
{
yield return null;
var paket = new user_info() {id = "test", nickname = "test2", password = "test3"};
var jason = JsonConvert.SerializeObject(paket);
StartCoroutine(Upload("http://localhost:8080/member", jason));
}
private IEnumerator Upload(string URL, string jsonfile)
{
using (UnityWebRequest request = UnityWebRequest.Post(URL, jsonfile))
{
byte[] jsonToSend = new System.Text.UTF8Encoding().GetBytes(jsonfile);
request.uploadHandler = new UploadHandlerRaw(jsonToSend);
request.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
request.SetRequestHeader("Content-Type", "application/json");
yield return request.SendWebRequest();
if (request.result == UnityWebRequest.Result.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError)
{
Debug.Log(request.error);
}
else
{
Debug.Log(request.downloadHandler.text);
}
}
}
//async Task void Upload(string URL, string jsonfile)
//{
// using (UnityWebRequest request = UnityWebRequest.Post(URL, jsonfile))
// {
// byte[] jsonToSend = new System.Text.UTF8Encoding().GetBytes(jsonfile);
// request.uploadHandler = new UploadHandlerRaw(jsonToSend);
// request.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
// request.SetRequestHeader("Content-Type", "application/json");
// yield return request.SendWebRequest();
// if (request.result == UnityWebRequest.Result.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError)
// {
// Debug.Log(request.error);
// }
// else
// {
// Debug.Log(request.downloadHandler.text);
// }
// }
//}
}
- start 함수를 코루틴 처럼 사용이 가능하다 (이걸 여태 모르고 있었다;;)
반응형
LIST
'게임 데이터베이스 프로그래밍 > 수업 내용' 카테고리의 다른 글
[게임 데이터 베이스] 수업 내용 정리 (0) | 2023.05.31 |
---|---|
[MySQL] DBMS SLELECT FROM WHERE (1) | 2023.05.04 |