본문 바로가기
반응형

tech documents/node6

cookie, session과 passport.js cookie | session cookie는 웹서버에서 클라이언트에게 발급하는 것이고, session은 서버에서 이 cookie를 통하여 클라이언트의 정보를 저장해놓은 것이다. 따라서 클라이언트가 서버에 접속할 때마다, 클라이언트는 웹 서버에게 cookie를 포함하여 요청하고, 웹서버는 이 cookie를 통해 서버에 저장해 놓은 session 에서 검색하여 클라이언트의 정보를 알아낸다. passport serialize, deserialize passport.serializeUser((user,done)=>{ done(null,user); }); passport.deserializeUser((user,done)=>{ done(null, user); }); serializeUser은 로그인 시 done(n.. 2022. 3. 2.
mongoose 특정 db와 collection 연결 서론 express.js를 mongodb와 연결하는 중에 계속 connection error가 났다. mongoose docs에서는 아래와 같이 특정 db에 연결하라고 되어있지만, 연결이 되질 않는다. mongoose.connect('mongodb://localhost:27017/myapp');해결법 connect 메서드에서 url에 바로 db이름을 설정해주는 방법이 아닌, option으로 넘겨주면 된다. 그리고 collection은 schema에서 설정해주면 된다. 아래는 코드이다. require('dotenv').config(); const mongoose = require('mongoose'); mongoose.connect( `mongodb://${pro.. 2022. 3. 1.
npm command 윈도우에서 폴더 삭제 서론 웹 프로젝트에서, 빌드한 프로젝트 폴더를 새롭게 빌드하기 전에 기존에 빌드된 폴더를 지워야 하는 경우가 생긴다. 리눅스 기반 운영체제 에서는 package.json에 rm -rf 로 쉽게 지울 수 있지만, 윈도우 개발 환경에서 powershell 이나 cmd를 사용했을 때 지우기가 여간 쉽지가 않다. 해결법 npm install rimraf rimraf를 프로젝트 폴더에 설치한다. 그리고 아래와 같이 package.json에 명령어를 추가해주면 된다. npx rimraf dist 2022. 2. 26.
[Cheerio],[Axios] 모듈을 사용한 웹 크롤링 - 3 이전 포스팅에서는, Thebook 서비스의 책 내용에 해당하는 html을 크롤링하여 저장하는 함수까지 완성하였다. 현재로서는 프로젝트 루트에 ./fetching.js 만이 존재할 것이다. 마지막으로, fetching.js 로 크롤링한 Thebook의 책 내용을 읽기 편한 형태로 다시 렌더링하여 html response를 전송하는 express 서버를 제작해보려 한다. 일단. 프로젝트 루트에 ./app.js 파일을 하나 생성한다. 그리고 아래의 코드를 작성한다. ./app.js const express = require('express'); const loading = require('./fetching.js'); const app = express(); app.get('/book', (req, res, .. 2020. 4. 3.
[Cheerio],[Axios] 모듈을 사용한 웹 크롤링 - 2 이전 포스팅에서 책의 목차를 크롤링하여, 배열에 URL을 저장하는 작업까지 완료하였다. 현재까지의 코드는 아래와 같다. /fetching.js const axios = require('axios'); const cheerio = require('cheerio'); let $href = []; axios.get(`https://thebook.io/080212`) .then(dataa => { const $ = cheerio.load(dataa.data); $('section.book-toc>ul>li>a').each((index, item)=>{$href.push(item.attribs.href)}); console.log($href); }); $href 배열에는 아래와 같이 URL이 담겨 있다. 이 UR.. 2020. 4. 1.
[Cheerio],[Axios] 모듈을 사용한 웹 크롤링 - 1 https://thebook.io/ 더북(TheBook) thebook.io 길벗에서 제공하는 IT도서 열람 서비스인 `TheBook`이라는 사이트가 있다. 이렇게 주제별로 나눠져 있어, 한 페이지씩 넘기면서 책의 일부를 열람할 수 있다. 그런데 이전 페이지와 연결되는 경우 이전으로 다시 돌아가야 하는 불편함이 있다. 그래서 이 웹사이트를 크롤링해서, 내용을 html로 직접 가져온뒤 다시 웹페이지로 렌더링 해주는 서비스를 만들어 보려한다. TheBook의 URL은 아래와 같다. https://thebook.io/080212/ch01-01/ thebook.io 다음에 오는 URL은 책의 id이다. 그 다음 오는 URL은 책의 각 주제와 소주제를 의미한다. URL에 책의 id만 입력하여 접속하면, 이렇게 '.. 2020. 4. 1.
반응형