12주차 - (3) 은 개인프로젝트에 사용된 Djnago를 node.js로 컨버팅 실습시간 이였는데, 컨버팅 하다가 멈추고 node.js로 새 프로젝트를 만들고 있는 중입니다.
( 대충 skip하겠단 소리 )
저번시간에 이어서 이벤트와 내장함수를 이용한 간단한 CR
UD를 구현해보자!!
//Event.js
import React, { useState } from 'react'
const Event2 = () => {
const [username, setUsername] = useState("");
const [message, setMessage] = useState("");
const onChangeUsername = (e) => {
setUsername(e.target.value);
}
const onChangeMessage = (e) => {
setMessage(e.target.value);
}
const onClick = () => {
alert(username + ": " + message );
setUsername("");
setMessage("");
}
const onKeyPress = (e) => {
if(e.key === "Enter"){
onClick();
}
}
return (
<div>
<h1>리액트 이벤트 배워보자!!!</h1>
<input
type="text"
name="username"
value={ username }
placeholder="이름을 적어주세요"
onChange={ onChangeUsername }
/>
<input
type="text"
name="message"
value={ message }
placeholder="메세지를 적어주세요"
onChange={ onChangeMessage }
onKeyPress={ onKeyPress }
/>
<button onClick={ onClick }>클릭</button>
</div>
);
}
export default Event2
//crud.js
import React, { useState } from 'react';
const Crud = () => {
const [ food, setFood ] = useState([
{ id : 1, text: "삼겹살" },
{ id : 2, text: "회덮밥" },
{ id : 3, text: "커피" },
{ id : 4, text: "김밥" },
]);
const [ inputText, setInputText ] = useState("");
const [ nextId, setNextId ] = useState(5);
const foodList = food.map( foods => <li key= { food.id } onDoubleClick={() => onRemove( foods.id ) }> { foods.text } </li> );
const onChange = ( e ) => setInputText( e.target.value );
const onClick = () => {
const nextfood = food.concat({
id: nextId,
text: inputText
})
setNextId( nextId + 1 );
setFood( nextfood );
setInputText("");
}
const onRemove = id => {
const nextfood = food.filter( food => food.id !== id );
setFood( nextfood );
}
return(
<div>
<input type="text" value={ inputText } onChange={ onChange } />
<button onClick={ onClick }>추가</button>
{ foodList }
</div>
)
}
export default Crud;
const a = [1,2,3];
const b = a.map(num => num * num);
// b = 1, 4, 9
const a = [1,2,3];
const b = a.filter((n) => { return n != 1});
// b = 2,3
```js
const a = [1,2,3];
const b = a.concat(4);
// b = 1,2,3,4
```
node.js 웹소켓 socket.io에 대해서 배워보자!!
네트워크
통신
프로토콜
웹소켓
Socket.io
npm install --save socket.io
const express = require( 'express' );
const app = express();
const port = 8000;
const http = require( "http" ).Server( app );
const io = require( "socket.io" )( http );
app.set( "view engine", 'ejs' );
app.set( " views", __dirname + "/views");
app.get('/', ( req, res ) => {
res.render( 'socket' );
});
io.on( "connection", function ( socket ) {
console.log( "socket connected");
socket.on ( "aaa", () => {
console.log( "aaa" );
});
socket.on ( "bbb", () => {
console.log( "bbb" );
});
socket.emit( "ccc" );
socket.on('disconnect', function(){
console.log('server disconnected');
});
});
http.listen ( port, () => {
console.log( "8000!" );
});
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>
<script>
let socket = io.connect();
socket.emit( "aaa" );
socket.emit( "bbb" );
socket.on( "ccc", function( data ) {
alert( "ccc" );
});
</script>
</head>
<body>
<h1> Socket View 파일입니다. </h1>
</body>
💣💣💣💣💣💣💣💣💣💣💣💣💣
npm install socket.io
가 되지 않고 뜬 에러로써, node, npm 버전을 새로 업데이트 해준후 npm install socket.io@2.30
으로 특정 버전을 설치해주어 해결 참고> npm cache clean -f
> npm install -g n
> n latest
> n 12.22.6
> node -v
달달해서 바로 하려다가 아껴둠><
React
1. 이벤트 핸들링
2. 컴포넌트 응용
Node.js
無🥰
최근들어 진짜 제대로 수업한 기분!!
node.js로는 서버만 구축하고 firebase로 리액트 chatapp을 만들었는데, 이번엔 node.js로 서버사이드를 작성해보면서 firebase가 편하긴 편했구나 다시한번 느낄 수 있었고, 또 막상해보니 할 수 있겠구나 하는 생각이 드는 수업이였다.
그리고 주현쌤께서 스우파 hey 이야기를 하시고 계속 맴돌았다..그리고 영어발음이 저번부터 느꼈지만 정말 좋으신거 같다bb
+프론트앤드를 목표로 공부중인데, 백앤드가 재미 있어지고있다ㅋㅋㅋ 아직까지는!!