본문 바로가기

분류 전체보기

설치 1. yarn 설치 2. cmd > create-react-app hello-react d:\nodejs\reactjs\hello>cd hello-react d:\nodejs\reactjs\hello\hello-react>npm start > hello-react@0.1.0 start d:\nodejs\reactjs\hello\hello-react > react-scripts start 더보기
async / await 와 Promise (async 안에서 promise 처리) 상황#1 fn 함수를 async/await하고 싶은데, 그안에 비동기 함수(hasher)를 사용해야 할 때. 처리방법. 1. await를 사용할 함수를 생성. 2. return 타입을 Promise 객체로 넘겨준다. 3. promise 안에서 resolve로 넘겨줄 것과, reject로 넘겨줄 것을 만든다. 4. await로 받았을 때, 에러가 있을 수 있으므로, try-catch로 처리가 필요하다 *(중요) Promise 사용시 필수! console.log('hello'); const pbkdf = require('pbkdf2-password') const hasher = pbkdf(); console.log('hi1~') const fn = async ()=>{ const user={ id : '1'.. 더보기
[NODEJS 입문]14.(pbkdf2-password) 비밀번호 암호화 npm install --save pbkdf2-password 사용법 var bkfd2Password = require("pbkdf2-password"); var hasher = bkfd2Password(); var assert = require("assert"); var opts = { password: "helloworld" }; hasher(opts, function(err, pass, salt, hash) { opts.salt = salt; hasher(opts, function(err, pass, salt, hash2) { assert.deepEqual(hash2, hash); // password mismatch opts.password = "aaa"; hasher(opts, function(.. 더보기
[NODEJS 입문]13.(사용자 DELETE) 사용자 삭제 router.route('/user/delete') .get((req,res)=>{ res.render(path.join('.','user','delete'),{user : req.session.user}); }) form(action="/user/delete", method="post") input(type="hidden", name="_method" value='delete') input(type="hidden", name="username" value=user.username) input(type="submit", value="사용자 삭제") .delete((req,res)=>{ var temp ={ username : req.body.username, password : req.body.passw.. 더보기
[NODEJS 입문]12.(사용자 UPDATE) 사용자 정보 변경 사용자 정보를 변경한다. register pug 를 토대로 update pug를 생성 1. update /user/update router.route('/user/update') .get((req,res)=>{ res.render(path.join('.','user','update'),{user : req.session.user}); }) 2. update.pug -if(user){ form(action="/user/update", method="post") input(type="hidden", name="_method" value="PUT") div input(type='text' name='username' placeholder='username' value=user.username) div inpu.. 더보기
[NODEJS 입문]10. 세션을 이용한 로그인 정보 기억하기 & Logout 처리하기 세션을 이용하여 로그인 정보를 저장하자. https://www.npmjs.com/package/express-session 이동 1. express-session 설치 npm install --save express-session 2. 프로젝트에 모듈연결 var session = require('express-session'); 3. app.use session으로 사용 설정 app.use(session({ secret :'asdjha!@#@#$dd', resave:false, saveUninitialized:true })) !! 3군데를 고쳐야 함. 1. welcome 페이지 넘길때, session 값 넘겨주기 2. login시, session에 값 넣기 3. register 등록시, session에 .. 더보기
[NODEJS 입문]9.(사용자 CREATE) 사용자 등록하기 경로 1. register-get /router/user/register router.route('/user/register') .get((req,res)=>{ res.render(path.join('.','user','register')); }) 1-2. pug /views/user/register.pug h1 REGISTER form(action="/user/register", method="post") div input(type='text' name='username' placeholder='username') div input(type='password' name='password' placeholder='password') div input(type='text' name='displayname'.. 더보기
[NODEJS 입문]8.(사용자 READ) welcome 및 로그인 페이지 작성 welcome 페이지를 만들자 route 설정 - 기본경로 app > router > user ./router/user/login.js [ welcome 설정]var express = require('express');var router = express.Router();var path = require('path'); router.get('/user/welcome',(req,res)=>{ res.render(path.join('.','user','welcome'));}); ./app_user.js[root로 들어올 경우, /user/welcome으로 이동]app.get('/',(req,res)=>{ res.redirect('/user/welcome');}) welcome 페이지의 역할은 login 또는.. 더보기
[NODEJS 입문]6. 정적파일 경로 지정 이번에는 정적 파일을 지정하는 방법을 살펴 본다. app.js app.use(express.static('public')); 이렇게 설정한다면, 현재 프로젝트의 public 폴더 하단의 파일들을 검색한다. root.js router.get('/route',(req,res)=>{ res.send('Hello Router, ') }) 다음과 같이 /route.png 로 설정하게 된다면 static에서 public을 설정해두었기 때문에 ./public/route.png를 검색한다. /public이 webRoot로 설정된다는 의미임. 이렇게 하여 원하는 폴더명 하단에 html, img css 등의 파일들을 나눠 저장할 수 있다. 더보기
[NODEJS 입문]5. module.exports 와 path 모듈 router의 경우 다른 경로로 분리하여 보관하는 것을 권장함. 이번 프로젝트에서는 ./router/ 하단에 설정 할 예정.[분류별 세부 분류 필요함.] 1. 경로설정하기 경로를 설정하기 위해서는 path라는 모듈을 활용한다. var path =require('path'); 해당 모듈을 사용하면 현재 경로를 얻어올 수 있다 __dirname D:\nodejs\node_project\) 해당 경로를 기준으로, router 폴더의 root.js 파일로 접근하려면 다음과 같이 한다. var root = require(path.join(__dirname,'router','root')); //확장자 생략 가능 [확장자 생략시, 1. root.js > 2. root 폴더 하단의 index.js를 검색함. 해당 경로.. 더보기