본문 바로가기

매일코딩/Node.js19

node js data object 만들기 //person.js// person data object. setter getter 만드는 방법 var firstName, lastName, age; exports.setFirstName = function (fname) { firstName = fname;}; exports.setLastName = function (lname) { lastName = lname;}; exports.setAge = function (yrsold) { age = yrsold;}; exports.getPersonInfo = function () { return { firstName: firstName, lastName: lastName, age: age };};----------------------------------.. 2018. 10. 15.
nodemailer 메일 보내기 & 랜덤 비밀번호 //관련 모듈 설치//npm i nodemailer//npm i nodemailer-smtp-transport var nodemailer = require('nodemailer');//smtp 서버를 사용하기 위한 모듈이다.var smtpTransport = require('nodemailer-smtp-transport'); //아이디가 존재할 경우 //숫자 + 문자 + 특수문자 새로운 비밀번호 생성하고 var arr = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,~,`,!,@,#,$,%,^,&,*,(,),-,+,|,_,=,\.. 2018. 10. 15.
[node js] 성경 db 연동 [node js] 성경 db 연동mysql 성경 db를 찾아서 데이터를 넣어준 이후 작업. bible.jsvar express = require('express')var app = express()var router = express.Router()var mysql = require('mysql')var fs = require('fs')var ejs = require('ejs') //성경 메인 화면router.get("/bible",function(req,res){ console.log("메인화면 진행") //console.log(searchBibleIndex("여호수아")) fs.readFile('bible.html', 'utf-8', function (error, data) { res.send(ejs.. 2018. 6. 14.
[node js] mysql 연동해서 파일 전송 [node js] 파일전송 네비게이션 file.jsvar express = require('express')var app = express()var router = express.Router()var mysql = require('mysql')var fs = require('fs')var ejs = require('ejs') //파일관련 모듈var multer = require('multer') //파일 저장위치와 파일이름 설정var storage = multer.diskStorage({ destination: function (req, file, cb) { //파일이 이미지 파일이면 if (file.mimetype == "image/jpeg" || file.mimetype == "image/jpg" |.. 2018. 6. 13.
[node js] mysql 게시판 구현 3년전인가 처음 게시판을 만들어보고 거의 처음인것 같다. 언제쯤이면 머릿속에 생각했던 내용들을 거침없이 만들 수 있는 날이 올까나. 암튼 게시판은 스스로 안보고 짤 수 있을 때까지 연습해보면 실력향상에 도움이 많이 되는 미니프로젝트긴하다. 나중에 게시판에 좀더 기능을 넣을 수도 있다. 예를 들면 db설계를 좀 해서 댓글 기능, 좋아요 기능, 조회기능 등을 넣어서 게시판을 확장 시킬 수 있다. 이번 포스팅에서는 아주 아주 심플한 게시판을 만들어서 페이징 기능의 핵심만 정리해본다.네비게이션아래는 파일 네비게이션이다. 우리가 사용할 파일들은 빨간점으로 표시해놓았다. node js 기본셋팅(app.js)app.js를 아래와 같이 작성한다. 게시판이랑 상관없는 로직도 있지만 지우지 않았다... var produc.. 2018. 6. 12.
[node js] 자바스크립트 페이지이동 & 뒤로 가기 *자바스크립트 뒤로가기 쿼리 뒤로가기 *서버에서 auth 객체를 view 에 던져서 존재하면 페이지를 보여주고 없으면 location.href로 바로 페이지 강제 이동 2017. 6. 15.
[node js] 자바스크립트 동적구현&함수에 값넣고 호출 할때 에러해결 동적쿼리 생성 output += ''; } 문제는 음...동적쿼리를 생성하고 ...ajax로 값을 받아와서 동적 쿼리에 넣어 그 값을 함수에 던져준다...숫자는 잘들어가지는데 문자를 던지니깐 계속 에러가 났다.출력해보니..... undefind 하면서 정의 할 수 없다고.. 3시간 넘게 삽질했다.. 그래서 구글링!!!인자 사이에 \'' 요런걸 넣어라네.....갈길이 멀다.ㅠㅠ *참고acceptedYou need to wrap the input item.store_code with quotation marks; otherwise, it tries to treat it as a variable, not a string:html += ''; 2017. 6. 14.
[nodejs] 이미지 프로젝트에 사용 2017. 6. 7.
[node js] 게시판 글 클릭 후 뒤로가기하면 조회수 초기화 문제 node js로 게시판을 만들다가 문제를 발견했다.해당 글을 클릭하면 글 상세페이지로 넘어가면서 조회수가 1 증가한다.하지만 웹의 뒤로가기 버튼을 누르면 글 목록 페이지로 이동되면서 조회수가 0 으로 초기화 된다. 구글링하다가 관련 소스를 발견했다. //main pageapp.get('/', function(req, res) { res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate'); res.header('Expires', '-1'); res.header('Pragma', 'no-cache'); .......응답 헤더에 옵션 같은 것을 준것 같은데.. 왜 이렇게 작동되는지 찾아봐야겠다. 2.로그아웃 하면 메인화면. 다시 뒤로.. 2017. 6. 6.
[node js] ajax 초 간단 예제 view- server 부분/*ajax 테스트 로직*/ router.get('/getajax', function(req, res, next) { res.render("main/ajax");}); /* POST 호출 처리 */router.post('/ajax', function(req, res, next) { console.log('POST 방식으로 서버 호출됨'); //view에 있는 data 에서 던진 값을 받아서 var msg = req.body.msg; msg = '[에코]' + msg; //json 형식으로 보내 준다. res.send({result:true, msg:msg});}); 2017. 6. 5.
[node.js] passport 로그인& 간편 로그인 passport 설정 --세션 모듈과 설정은 미리 해둬야 한다. //0준비작업//페스포트 사용var passport = require('passport')var LocalStrategy = require('passport-local').Strategy; //페스포트 초기화 및 세션 사용app.use(passport.initialize());//페스포트 인증을 사용할때 세션을 사용하겠다.//반드시 세션 모듈 뒤에 추가 //로그인 관련된 작업app.use(passport.session()); //3.세션을 저장하는 부분 user 는 new LocalStrategy done() 으로 날린값 passport.serializeUser(function(user, done) { console.log("serializ.. 2017. 5. 26.
[node.js] 쿠키 & 세션 간단하게 정리 - -웹브라우저가 서버에 접속하면 서버가 직접 쿠키(데이터)를 웹브라우저에 전달 -웹브라우저는 그 쿠키를 저장 -하지만 쿠키는 보안상 문제가 있음 - --웹브라우저가 서버에 접속하면 서버가 웹브라우저에 데이터 저장 오직 사용자의 식별자인 id 값만 브라우저에 저장! 식별자만 사용자의 컴퓨터에 저장하고 실제 데이터는 서버에 저장 - 세션은 고유의 식별자를 이용해서 서버에 저장된 값을 가져온다.! ////express 에는 session 기능이 없다.//이녀석이 기본적으로 세션정보를 메모리에 저장한다!//그래서 웹브라우저를 종료하면 날라간다.var session = require('express-session'); // app.use(session({ secret: '1231adfdf', resave: fa.. 2017. 5. 25.
[node.js] express 모듈2 http 모듈과 express 모듈로 만든 서버의 가장 큰 차이점은 express 모듈은 request 이벤트 리스너를 연결하는데 use() 메서드를 사용한다는 것.이유는 use() 메서드는 여러번 사용할 수 있다. 그리고 use() 메서드의 매개변수에 function(request,response,next){} 형태의 함수를 입력한다. next는 다음에 위치하는 함수를 의미한다. 예)// 모듈을 추출합니다.var express = require('express'); // 서버를 생성합니다.var app = express(); // 미들웨어 설정(1)app.use(function (request, response, next) { console.log("첫 번째 미들웨어"); next();}); // 미들.. 2017. 3. 13.
[node.js] express 모듈 1 express 모듈 http 모듈로 웹 서버를 생성하면 많은 일을 직접 처리해야 하므로 기존에 서버 생성 개념에 익숙하지 않다면 어렵다. express 모듈은 http 모듈에 여러 기능을 추가해서 쉽게 사용할 수 있게 만든 모듈이다. 개념개념설명express 모듈http 모듈처럼 사용할 수 있지만 훨씬 더 많은 기능이 있는 외부모듈미들웨어express모듈 use()메서드의 매개변수에 입력하는 함수를 말한다.router 페이지 라우팅을 지원하는 미들웨어static지정한 폴더에 있는 내용을 모두 웹서버 루트 폴더에 올릴 때 사용morgan웹요청이 들어왔을 때 로그 출력cookie parser요청쿠키를 추출body parserpost 요청 데이터를 추출한다.connect-multipartymultipart/f.. 2017. 3. 12.
[node.js] 외부모듈 필수개념개념설명ejs.모듈/jade 모듈웹 페이지를 동적으로 생성하는 템플릿 엔진 모듈supervisor 모듈파일의 변경 사항을 자동으로 인식하고 종료 후 다시 실행forever 모듈웹 서비스 장애와 같은 예외 상황을 대비하고자 만들어진 모델npm install 모듈외부모듈을 설치할 때 사용/설치한 모듈은 내장모듈처럼 사용가능npm init 명령node.js 프로젝트를 생성할 때 사용package.json 파일node.js 프로젝트의 환경 설정 정보를 담은 파일 node.js는 npm 기반으로 모듈을 공유한다. 설치 $ npm install 모듈명 외부모듈 사용// 모듈을 추출합니다.var ejs = require('ejs');var jade = require('jade'); ejs 모듈ejs 모듈은 템.. 2017. 3. 11.
[node.js] HTTP HTTPhttp 모듈은 node.js 의 가장 기본적인 웹 모듈이며 http 웹 서버와 클라이언트를 생성하는 것과 관련된 모든 기능을 담당한다. 기본개념개념설명요청웹 페이지에 접속하려고 하는 어떤 요청을 말한다.응답요청 받아 이를 처리하는 작업을 말한다.http 모듈http 웹 서버와 관련된 모든 기능을 담은 모듈이다.server 객체웹 서버를 생성하는데 꼭 필요한 객체이다.response 객체응답 메시지를 작성할 때 request 이벤트 리스너의 두 번째 매개변수로 전달되는 객체request 객체응답 메시지를 작성할 때 request 이벤트 리스너의 첫 번째 매개변수로 전달되는 객체 요청메시지를 사용해야 사용자에게 적절한 웹 페이지를 제공할 수 있다. 그리고 응답 메시지를 사용하면 쿠키를 저장하거나 추.. 2017. 3. 10.
[node.js] 이벤트 이벤트Node.js 의 큰 특징 중 하나는 이벤트 기반 비동기 프로그래밍이 가능하다는 점이다. 자바스크립트는 다른 프로그래밍 언어와 비교했을 때 함수 생성과 이벤트 연결이 굉장히 쉬우므로 이벤트 기반 프로그래밍을 하기 좋다. 큰 개념on(eventName, eventHandler) - 이벤트를 연결하는 메서드.emit() - 이벤트를 실행할 때 사용.EventEmitter 객체 – 이벤트를 연결할 수 있는 모든 객체의 어머니. 기존의 자바스크립트 이벤트연결 load를 이벤트 이름 또는 이벤트 타입 이라고 한다. 또한 매개변수로 입력한 함수를 이벤트 리스너 또는 이벤트 핸들러라고 한다. node.js에서 이벤트 연결// process 객체에 exit 이벤트를 연결합니다.process.on('exit', f.. 2017. 3. 9.
[node.js] 기본 내장모듈 기본내장모듈 node.js는 기본적으로 여러 가지 모듈을 제공한다. 꼭 알아둘 개념개념설명node.js문서node.js의 주요 기능을 설명하는 문서다url모듈인터넷 주소를 다루는데 사용Query String 모듈url 객체의 쿼리를 다루는 데 사용한다.util 모듈node.js의 보조 기능을 모아두었다.crypto 모듈해시 생성과 암호와를 수행한다.File System모듈파일을 다룬다. node.js 문서를 보는 곳https://nodejs.org/dist/latest-v6.x/docs/api/ 1. os모듈 예)// 모듈을 추출합니다.var os = require('os'); // 모듈을 사용합니다.console.log(os.hostname()); //호스트 이름 리턴console.log(os.type.. 2017. 3. 8.
[node.js] 입문 1.node.js 란?웹프로그래밍에는 스레드라는 것이 있다. 스레드는 하나의 프로그램 내부에서 실행되는 실행 흐름 단위를 말한다. 장점사용자에 대한 응답성 향상동시에 작업을 완료시킴 사용하는 곳네트워크 웹서버 또는 데이터베이스 통신시간이 오래걸리는 작업 단점많은 스레드로 코드 실행을 제어하면 복잡해지고 버그가 발생할 수 있다.스레드를 삭제하려면 삭제할 때 발생할 수 있는 문제와 처리 방법을 알아야 한다. 이러한 스레드의 단점을 해결하고자 내부적으로 node.js는 스레드를 알아서 처리하고 외부적으로는 스레드를 신경 쓰지 않고 개발할 수 있게 만든 소프트웨어 플랫폼이다. 차이?기존 웹 서버는 대부분 스레드를 기반으로 하는 동기 방식으로 네트워크 입출력을 처리한다. 반면 node.js는 이벤트를 기반으로 하.. 2017. 3. 7.