본문 바로가기

JavaScript

(22)
11. Node.js Mongodb를 사용한 게시판 (2) 게시판 (1) 에 이어 댓글 달기, 글 검색에 대해 다뤄보겠습니다. 글을 하나 추가해줍니다. router.get('/search/:keyword', async (req, res) => { let result = await Notices.find({ title: { $regex: req.params.keyword } }); return res.status(200).json({ data: result }); }); notice.js에 위 코드를 추가해줍니다. $regex 쿼리는 정규식에 해당하는 값이 있는 데이터들을 가져옵니다. 저 쿼리는 title 에 keyword가 있는지를 체크하는 것이 됩니다. 검색 결과 있을 시 검색 결과 없을 시 댓글 댓글 달기 기능의 추가를 위해var NoticeSchema = ..
10. Node.js Mongodb를 사용한 게시판 (1) 우와 여러분들! 효근이에요! 지금까지 배운 것을 활용하여 게시판을 만들어볼겁니다. 기능으로는 로그인, 유저, 글 쓰기, 글 수정, 글 삭제, 글 불러오기, 글 제목 검색, 댓글 달기 등이 있습니다. 이번 시간엔 로그인, 유저, 글 쓰기, 수정, 삭제, 글 리스트 불러오기 까지 해보겠습니다. DB var UsersSchema = new mongoose.Schema({ id: String, name: String, token: String, // 유저 고유 토큰 password: String, }); var NoticeSchema = new mongoose.Schema({ writer: String, // 쓴 사람의 token title: String, // 글 제목 content: String, // 글 ..
9. Node.js Multer 이미지 업로드 자! 여러분! 효근이에요! 이번 글은 Multer 모듈을 사용한 이미지 업로드를 작성하겠습니다. npm install multer yarn add multer 먼저 root에 public 폴더를 만들어준 뒤, path 모듈을 설치합니다. npm install path yarn add path app.use(express.static(path.join(__dirname, 'public'))); app.use를 사용하여 public 폴더를 url의 루트로 설정했습니다. public 폴더 안에 image.jpg가 있다면, 저걸 사용함으로써 localhost:3000/image.jpg 로 접근할 수 있죠. var multer = require('multer'); var randomstring = require(..
8. Node.js cors 와! 효근이에요! 이번엔 Cross Origin. cors에 대해 배워보겠습니다. 당연히 모듈이 있어 쉽게 구현 가능하지만, 먼저 Cross Origin 에 대한 이론 설명부터 시작해야겠죠? CORS 도메인 간에 자원을 공유 할 수 있는 권한을 갖도록, 브라우저에 추가 HTTP 헤더를 사용하는 것입니다. 쉽게 말해, 서버 ( url-a.com ), 웹 ( url-a.com , url-b.com ) 이 있으면 a 끼리는 권한이 있지만, url-b는 권한이 없어서, CORS 헤더를 설정해야 합니다. 서버와 웹의 도메인이 같지 않을 때, 추가해야 하는 헤더가 CORS입니다. ( 사진 출처 MDN ) 종류 Simple / Preflight Credential / Non-Credential (Authenticat..
7. Node.js Route, export 여러분들! 효근입니다! 이번엔 Node.js의 app.js를 여러 파일로 분할해볼겁니다. var express = require('express'); var bodyParser = require('body-parser'); var mongoose = require('mongoose'); var app = express(); const uri = 'mongodb://127.0.0.1:27017/user_db_name'; var db = mongoose.connect(uri, (err) => { if (err) { console.log(err.message); } else { console.log('Succesfully Connected!'); } }); var TodoSchema = new mongoose..
6. Node.js To-Do List Wa! 효근이에요! 오늘은 간단한 To-Do List 예제를 만들어보려 합니다. { title: '제목2', date: '2020-09-27', // ( Date 객체 ) isDone: true, }, 데이터는 이렇게 들어갈 것입니다. var TodoSchema = new mongoose.Schema({ title: String, date: { type: Date, default: new Date() }, isDone: { type: Boolean, default: false }, }); 스키마 구성입니다. date와 isDone에 default를 사용하여 초기 값을 넣어줬습니다. ( 현재 시간, false ) app.get('/getList', async (req, res) => { let result..