Back-End/App15 [ NodeJS - APP ] 모듈을 활용 * 해당 포스터는 생활코딩 강의를 정리한 내용입니다. var template = { //module.exports = { 도 가능 HTML: function(title,list,body, control){ return ` WEB ${list} ${control} ${body} ` }, list: function(filelist){ var list = ''; var i = 0; while( i var template = require.. 2021. 8. 12. [ NodeJS - APP ] 기능 Refactoring * 해당 포스터는 생활코딩 강의를 정리한 내용입니다. [ template 기능 정리 정돈하기 ] 객체 : 서로 연관된 데이터와 그 데이터를 처리하는 방법인 함수를 그룹핑하여 코드의 복잡성을 낮추는 수납 상자 refactoring : 동작 방법은 똑같이 유지하면서 내부의 코드를 더 효율적으로 바꾸는 행위 var template = { HTML: function(title,list,body, control){ return ` WEB ${list} ${control} ${body} ` }, list: function(filelist){ var list = ''; var i = 0; while( i < filelist.length ){ list = list + `${filelist[i]}` i += 1 } li.. 2021. 8. 12. [ NodeJS - APP ] 글 삭제 기능 완성 * 해당 포스터는 생활코딩 강의를 정리한 내용입니다. 삭제하는 메소드 : fs.unlink(path, callback) → 삭제할 path를 적어주고 callback 함수를 실행한다. else if (pathname === '/delete_process') { var body =''; request.on('data',function(data){ body = body + data }); request.on('end', function(){ var post = qs.parse(body); var id = post.id //id부분만 전송이 되므로 title과 description 변수 필요 없음 fs.unlink(`data/${id}`, function(error){ response.writeHead(302.. 2021. 8. 12. [ NodeJS - APP ] 글 삭제 버튼 구현 * 해당 포스터는 생활코딩 강의를 정리한 내용입니다. delete를 클릭했을 때 해당 글과 데이터 디렉토리의 제목이 같은 파일이 삭제되면 된다. //변경 전 fs.readdir('./data', function(error, filelist) { fs.readFile(`data/${queryData.id}`, 'utf8', function(err,description){ var list = templateList(filelist); var title = queryData.id var template = templateHTML(title,list, `${title} ${description}`, `create update`); response.writeHead(.. 2021. 8. 12. [ NodeJS - APP ] 수정된 내용 저장 * 해당 포스터는 생활코딩 강의를 정리한 내용입니다. [ update_process 쪽으로 데이터를 전송했기 때문에 전송한 데이터를 받아서 처리하는 방법 ] update_process에서도 post방식으로 들어온 데이터를 받아야함 var body =''; request.on('data',function(data){ body = body + data }); request.on('end', function(){ var post = qs.parse(body); var title = post.title; var description = post.description; fs.writeFile(`data/${title}`, description, 'utf8', funct.. 2021. 8. 12. [ NodeJS - APP ] 글 수정 정보 전송 * 해당 포스터는 생활코딩 강의를 정리한 내용입니다. [ update를 클릭했을 때 보여주는 화면 만들기 ] 1. form 필요 2. read 기능 필요 : 수정하고자 하는 데이터를 미리 넣어놔야한다. → id 값이 있는 경우에 대한 처리를 copy else if (pathname === '/update') { fs.readdir('./data', function(error, filelist) { fs.readFile(`data/${queryData.id}`, 'utf8', function(err,description){ var list = templateList(filelist); var title = queryData.id var template = templateHTML(title,list,`${t.. 2021. 8. 12. [ NodeJS - APP ] 글 수정 링크 생성 * 해당 포스터는 생활코딩 강의를 정리한 내용입니다. 누구를 수정할 건지에 대한 정보를 query string을 통해서 전달하기 var http = require('http'); var fs = require('fs'); var url = require('url'); function templateHTML(title,list,body, control){ return ` WEB ${list} ${control} ${body} ` } function templateList(filelist){ var list = ''; var i = 0; while( i < filelist.length ){ list = list + `${filelist[i]}` i += 1 } list = list + ''; return l.. 2021. 8. 12. [ NodeJS - APP ] 파일 생성과 리다이렉션 * 해당 포스터는 생활코딩 강의를 정리한 내용입니다. [ post 방식으로 전송된 데이터를 데이터 디렉토리 안에 파일의 형태로 저장하기 ] fs.writeFile(`data/${title}`, description, 'utf8', function(err){ //err은 에러가 있을 경우에 에러를 처리하는 방법 response.writeHead(200); response.end('success'); }); callback 함수를 실행이 된다라는 것은 '파일에 저장이 끝났다'라는 의미 main.js를 실행했을 때 data 폴더에 새로운 파일이 생성되어 있다면 성공 [ 사용자를 방금 생성한 파일을 보는 뷰페이지로 보내기 ] localhost:3000/?id=nodejs 라는 주소로 보내면 사용자가 자신이 입력.. 2021. 8. 12. [ NodeJS - APP ] post 방식으로 전송된 데이터 받기 * 해당 포스터는 생활코딩 강의를 정리한 내용입니다. [ HTML form ] 외부에서 데이터를 전송하면 그 전송받은 데이터를 데이터 디렉토리 안에 생성 → 컨텐츠를 사용자가 웹을 통해서 생성, 수정, 삭제 가능 form 태그는 form안에 있는 각각의 control들에 사용자가 입력한 정보를 submit 버튼을 눌렀을 때 action 속성이 가리키는 서버를 query string의 형태로 데이터를 전송하는 HTML 기능이다. 1. 사용자가 입력한 정보를 서버에 전송하기 위해서는 정보를 어디로 보낼 것인지에 대한 주소가 필요 → 전송하고자 하는 데이터를 갖고 있는 form을 태그로 감싸준다. 2. 에서 action은 '입력한 정보를 서버의 이 주소로 전송하고 싶다라'는 의미.. 2021. 8. 12. 이전 1 2 다음