D + 15
점점 의욕을 잃고 있다,,, 오늘 시간 너무 안 가서 지루해 죽는 줄 알았따 ㅋㅋㅋㅋㅋ
빨리 할 일을 찾아야지... 할 게 너무 많아서 의욕을 잃은 것 같기도 하고^^
그래서 오늘은 한 게 별로 없당,,, 정리를 열심히 안 한 탓도 있지만서도~ㅋㅎㅋㅎ
귀찮아서 대ㅜ충함
json파일 분리해서 사용하는 방법 찾아보기
json파일에서 배열로 사용하는 방법 찾아보기
node.js 책 공부하기
<json 파일 사용>
1 2 3 | { "dog":["진돗개", "리트리버", "푸들"] } | cs |
dog[0] = “진돗개”
1 2 3 4 5 6 7 8 9 10 11 12 | { "dog": [ "진돗개", "리트리버", "푸들", { "owner":"홍길동", "phone":"0101234" } ] } | cs |
dog[3].owner = “홍길동”
<t 함수>
translate.json
1 2 3 4 5 6 | { "error":{ "unspecific":"somthing went wrong", "404":"The page was not found" } } | cs |
sample
1 2 3 4 5 | const error = '404'; i18next.t([`error.${error}`,'error.404']) const error = '502'; i18next.t([`error.${error}`,'error.unspecific']) | cs |
첫 번째 코드는 ‘The page was not found’가,
두 번째 코드는 ‘something went wrong’이 출력된다.
<JSON.stringify(value, replacer, space)>
자바스크립트의 값을 JSON 자열로 변환하는 것
* value : json문자열로 변환할 값이다. 배열, 객체, 숫자 문자 등이 될 수 있다.
* replacer : 함수 또는 배열이 될 수 있다. 이 값이 null이거나 제공되지 않으면 객체의 모든 속성들이 json 문자열 결과에 포함된다.
(node.js 공부)
<세션 관리하기>
특징 : 서버쪽에 정보가 저장된다.
사용 : 로그인하면 세션이 생성되고, 로그아웃하면 세션이 삭제되어 사용자가 로그인하지 않았을 때에는 접근이 제한된 페이지를 볼 수 없다.
user세션 확인 후
세션 객체가 존재하면 요청페이지를 띄운다.
세션 객체가 존재하지 않으면 로그인 화면으로 넘어가고, 로그인 후에는 요청 페이지를 볼 수 있다.
1 2 3 4 5 6 | app.use(cookieParser()); app.use(expressSession({ secret:'my key', resave:true, saveUninitialized:true }); | cs |
세션을 설정하는 코드이다. cookie-parser와 express-session모듈을 따로 설치해 주어야 한다.
1 2 3 4 5 6 7 8 9 | router.route('/process/product').get(function(req,res){ if(req.session.user){ res.redirect('/public/product.html'); } else { res.redirect('public/login.html'); } });
app.use(‘/’, router); | cs |
이 코드에서 req.session.user는 세션 객체를 말한다. 즉, if(req.session.user)은 세션 객체가 존재하면, product페이지(접근 제한 된 페이지)로, 세션 객체가 존재하지 않으면 로그인 페이지로 이동한다.
<파일 업로드 기능 만들기>
파일 업로드 기능을 추가하려면 multer미들웨어를 설치해야 한다.
1 2 3 4 5 6 7 8 | var storage = multer.diskStorage({ destination: function (req, file, callback) { callback(null, 'uploads') }, filename: function (req, file, callback) { callback(null, file.originalname + Date.now()) } });r | cs |
destination은 업로드 파일을 저장할 폴더명을 지정해주고, filename은 파일 명을 변경할 수 있게 한다.
1 2 3 4 5 6 7 | var upload = multer({ storage: storage, limits: { files: 10, fileSize: 1024 * 1024 * 1024 } }); | cs |
limits는 파일 갯수와 크기를 제한한다.
MIME TYPE : multipurpose Internet Mail Extense로, 파일 변환을 의미한다. 파일 전달에 사용된다.
<오류>
ejs파일에서 __(‘ ‘)없애면 그 변수에 저장된 값이 나오는 것이 아니라 문자 그대로 출력된다.
문제 해결하기
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
<다음주 월요일에 할 일>
페이지가 여러 개일 때/버튼을 클릭했을 때 새로운 화면이 나올 경우 하나의 언어인 상태로 계속 유지 되는지 구현해 보기
node.js 로그인/회원가입 - DB구축 공부하기(월,화까지)
i18n과 i18next차이점
마지막 오류 해결하기