백엔드 (24) 썸네일형 리스트형 구글 클라우드로 nodejs 프로젝트 배포하기 1. 개요 구글 클라우드에 내가 만든 서비스 업로드하고 배포하기 그럼 localhost말고 딴데서도 접속 가능함 2. 셋팅 runtime: nodejs env: flex manual_scaling: instances: 1 resources: cpu: 1 memory_gb: 0.5 disk_size_gb: 10 server.js랑 동일한 경로에 app.yaml생성 3. 구글 클라우드 설정 클라우드 컴퓨팅 서비스 | Google Cloud 클라우드 컴퓨팅 서비스 | Google Cloud 데이터 관리, 하이브리드 및 멀티 클라우드, AI와 머신러닝 등 Google의 클라우드 컴퓨팅 서비스로 비즈니스 당면 과제를 해결하세요. cloud.google.com 위 링크로 접속하고 무료로 시작하기 눌러서 로그인 + .. nodejs에서 routes폴더 이용해서 라우터 관리하기 1. 개요 라우터 여러개 생기면 관리 귀찮음 router 폴더에다가 JS파일로 라우터 들을 저장해놓을 수 있음 server.js에 JS파일 등록해서 쓰면 됨 2. 설정 server.js랑 같은 경로에 routes 폴더 만들기 routes 폴더 안에 JS파일 만들기 3. 코드 (1) server.js // 라우터 가져오는 코드 // app.use는 미들웨어 쓰는 코드 // 미들웨어는 요청과 응답 사이에 실행하는 코드 // URL없이 미들웨어 쓰면 모든 응답과 요청 사이에서 실행 // app.use('/', 미들웨어, function) 형태는 '/'요청왔을대 미들웨어 실행 app.use("/shop", require("./routes/shop")); shop.js라는 파일에다가 라우터 집어넣어둠 경로에 왜 .. nodejs에서 회원 게시판 기능 만들기 1. 개요 내가 쓴 글만 수정, 삭제할 수 있게 변경 2. 코드 (1) 글 작성할때 작성자 정보 저장하는 코드 // POST요청을 처리하는 소스 app.post("/add", function (req, res) { res.send("전송완료"); console.log(req.body.title); console.log(req.body.date); // HTML에서 제목과 날짜 불러와서 변수에 저장 var title = req.body.title; var date = req.body.date; // user의 id를 불러와서 변수에 저장 var user = req.user._id; // counter라는 collection에서 데이터 가져오는 코드 // 게시물갯수 라는 이름의 데이터를 찾아서 가져옴 db... nodejs랑 mongodb에서 검색 기능 최적화하기(2) 1. 개요 text-index를 만들어두면 검색이 쉬워짐 ‘or’ 연산자나 ‘-’ 연산자 같은거 사용 가능 부분 검색어로 검색 가능 근데 text-index는 단점이 있음 단어 일부만 검색하면 검색이 안됨 mongodb는 띄어쓰기 기준으로 인덱싱 해주기 때문 2. Search Index 쓰기 mongodb atlas에서 search index 만들기 index Name 짓고 인덱스를 적용할 collection을 선택해야 함 [Refine Your Index]를 클릭하고, lucene.korean으로 변경합시다 그 밑에 있는 [Add Field Mapping]버튼을 눌르세여 Field Name은 제목으로 지정해주세여 3. 코드 // 검색 기능 app.get("/search", (요청, 응답) => { //.. nodejs랑 mongodb에서 검색 기능 최적화하기(1) 1. 개요 검색할 데이터가 너무 많으면 검색하기 어려움 indexing이 되어있는 데이터에는 binary search 개념을 도입할 수 있음 binary search는 이진탐색인데 검색할 데이터가 정렬되어있어야 함 indexing은 데이터를 정렬하는 행위 몽고DB에서는 오름차순으로 정렬되어 있는 _id를 이용해서 검색하면 binary search 가능 mongoDB atlas에서 인덱싱 할 수 있음 인덱싱 해둔 데이터를 검색하면 부분 검색어로도 검색 가능 2. MongoDB Atlas에서 인덱싱하기 인덱싱 하고싶은 collection에 접속 후 Indexes탭으로 들어감 [Create Index]버튼을 눌러줌 이렇게 제목을 text 순으로 정렬해준다 3. 코드 (1) server.js // 검색 기능 a.. nodejs랑 mongodb로 검색 기능 만들기 1. 개요 DB에서 게시글 검색하는 기능 구현 // DB에서 한개만 찾음 collection().findOne() // DB에서 몽땅 찾음 collection().find().toArray() DB에서 몽땅 찾을 수 있는 코드 사용 2. 알고리즘 list.ejs에서 검색 버튼 누름 JS 코드를 이용해 query string을 작성하고, 서버에 보내줌 query string은 ‘/search?value=검색어’ 형태임 server.js에서는 ‘/search’라는 URL로 GET 요청 처리 ‘요청.query.value’는 query string으로 전달받은 데이터를 의미 db에서 전달받은 데이터를 collection().find().toArray()로 검색 검색 결과를 ‘searchCon.ejs’파일로 전달.. nodejs에서 회원가입 기능 구현하기 1. 개요 Session-based 로그인을 위한 회원가입 기능 만들기 아이디, 패스워드 제출 시 DB에 해당 내용 전달 2. 코드 (1) server.js // 회원가입 페이지 요청 소스 app.get("/join", function (요청, 응답) { 응답.render("join.ejs"); }); ‘/join’이라는 URL로 요청 들어오면 join.ejs 렌더링 // 회원가입 기능 // POST요청을 처리하는 소스 app.post("/createID", function (req, res) { console.log(req.body.id); console.log(req.body.pw); var id = req.body.id; var pw = req.body.pw; // login이라는 collectio.. nodejs에서 mypage 구현하기 1. 개요 회원가입이랑 로그인 기능 구현했으니까 mypage에 접속할 수 있도록 만들고 싶음 mypage는 회원 정보를 바탕으로 로그인 한 회원의 개인정보가 담긴 페이지를 보여줌 2. 코드 (1) mypage.ejs mypage.ejs파일 만들어줍시다 의 마이페이지입니다 적당히 꾸며주시면 됩니다 (2) server.js // 로그인한 유저의 세션 아이디를 이용해 DB에서 개인정보 찾아주는 코드(개인 정보 페이지 접속시 실행) // db에서 유저 아이디를 이용해서 유저를 찾고, 유저 정보를 done(null, 결과)에전달해줌 // 참고로 '아이디'라는 변수는 serializeUser코드의 'user.id'변수에 들어있는 값과 동일 passport.deserializeUser(function (아이디, do.. 이전 1 2 3 다음