본문 바로가기

전체 글

(347)
Node.js- form 컨텐츠를 사용자가 웹을 통해서 생성,수정,삭제할 수있는 방법 사용자가 서버로부터 데이터를 전송하기위한 방식인 form 사용자로부터 정보를 input받는 법 ~~form.html~~ 각각의 값들이 즉 컨트롤들에 이름(name)을 주어야 의미가 있음 입력을 하면 입력된 데이터 들이 액션주소로 전송되면서 각각의 컨트롤의 이름에 대하여 쿼리스트링의 형태로 정보가 전달된다 다만 이건 좋은방법이아니다 서버로부터 사용자가 데이터를 가져올때 get할때는 get방식(method="get" or 생략)으로 쿼리스트링을 쓰고 서버에 데이터를 생성 삭제 수정등을 할때는 필요한 데이터를 url로 보내지 않고 눈에 보이지 않는 post방식으로 데이터를 전송한다
Node.js-npm(pm2) Package program npm pm2 패키지 프로그램 vscode (관리자권한으로 실행) Ctrl+` - cmd창 열기 pm2설치 : npm install pm2 -g 실행 : pm2 start mian.js 현재pm2에 의해서 실행되고 있는 프로그램 목록 : pm2 monit 위 목록에서 나가기 : q 현재pm2실행중인 프로세스를 보고싶을때 : pm2 list 프로세스를 끄고싶을때 : pm2 stop mian 변경사항자동적용 : pm2 start main.js --watch 코드 로그 확인 : pm2 log *8 .17 추가 pm2 kill : pm2관련 작동중인것을 모두 꺼버림 pm2 start main.js --watch --no-deamon (데몬은 백그라운드 상태에서 실행되는 것을 말함,즉 no deamon하면 pm2..
Node.js- 콜백 즉 이미 정의된 함수(setTimeout())과 같은 함수의 파라미터에는 함수가 인자로써 오게 되고(콜백함수) 그 콜백함수가 이미정의된 함수의 성격에 따라서 동기적이든 비동기적이든 실행되게 된다 즉 setTimeout(콜백함수, 약속된 또다른 파라미터); 까지만 코드를 작성하면 내부적인 작용으로 인해 콜백함수가 실행된다.
Node.js-리펙토링
Node.js-function화의 이해 첫번째 시도 var template=`~~`가 있던 43번째줄을 통으로 templateHTML()이라는 함수로 대체하려고 해봤다 문제 발생 16번째 줄의 변수 title이 정의되지 않았다는 에러 발생 문제 발생원인 title은 41번째 줄에 정의 되어 있으나 변수선언의 호이스팅 원리에 따라 var title 이 맨 위로 올라가고 변수 할당인 title = 'welcome'이 41번째 줄에 남게 된다 따라서 순차적으로 var title ${title} title = 'welcome' 순서가 되기 때문에 ${title}이 undefinded가 되는 것이다 문제 해결 teplateHTML()함수에 인자와 매개변수를 주자 43번째 줄에서 templateHTML(title, lits, data);와 같이 인자를 ..
Node.js - fs.readdir fs.readdir('./data', function(err, files){ }); 를 해석하면 현재 디렉토리 안에 있는 data폴더에 속한 파일들의 목록을(내용x)(cf// fs.readFile은 파일안의 내용을 불러옴) 배열의 형식으로 꺼내준다 *./data 에서 ./는 현재 디렉토리를 가르키며 node를 실행하는 디렉토리를 기준으로 디렉토리 위치를 정한다 따라서 위 예제의 cmd창에서 첫번째 경우 node를 실행하는 디렉토리가 nodejs폴더이기 때문에 그 디렉토리에 존재 하는 data폴더를 가져온다는의미로 ./를 쓴것이고두번째 경우 node를 실행하는 디렉토리가 node폴더이기 때문에 node폴더 안에는 data폴더가 없기때문에 ./로는 가져오지 못하는 것이다.
Node.js- WEB 본문 만들기
Node.js- Not found 오류 구현 Not found 오류구현 목표 : 사용자가 querystring이 없는 홈으로 들어오게 되면 웰컴페이지를 출력하고 사용자가 id값이 있는 목록을 클릭하면 해당 파일을 가져올 것이고 그 외의 존재하지 않는 경로로 들어왔을때 (Not found)라는 오류메세지를 사용자에게 전송하고 싶다 먼저 사용자가 루트(뒤에 path정보가 붙지 않는 상태,ex)http://localhost:3000/)로 접근 했는가 그렇지 않은가를 구분 url.parse(_url,true);는 주어진url정보를 분석해서 객체의 형식으로 보여준다 path 에는 querystring이 포함이 되어있고 pathname은 querystring이 실제로 주소에 있다고 하더라도 querystring을 제외한 패쓰만을 보여줌 */는 path의 시작..