Git Product home page Git Product logo

news-web-site-nodejs's Introduction

πŸŽͺ Circus

nodejs-news

NodeJS Step 12 news site

node.js - express둜 πŸ“° λ‰΄μŠ€νŽ˜μ΄μ§€ λ§Œλ“€κΈ°

  • express, DB없이 node.js만으둜 todo listλ§Œλ“€κΈ° ν›„ μ΄μ œλŠ” express와 MongoDB/mongooseλ₯Ό μ΄μš©ν•΄ λ‰΄μŠ€νŽ˜μ΄μ§€λ₯Ό λ§Œλ“€μ–΄λ³΄μž.
  • 이번 ν”„λ‘œμ νŠΈμ—μ„œλŠ” JWT와 Oauthλ₯Ό 써보자.
  • 그리고 μ΄λ²ˆμ—λŠ” test frameworkλ₯Ό μ‚¬μš©ν•΄ 보자.

πŸ“š μ½˜μ…‰

  • λ°©λ¬Έμžλ‚˜ νšŒμ›λ“€μ΄ νŽ˜μ΄μ§€λ‘œ λ°©λ¬Έν•˜λ©΄ κΈ°μžκ°€ μž‘μ„±ν•œ λ‰΄μŠ€λ“€μ„ λ³Ό 수 μžˆλŠ” νŽ˜μ΄μ§€λ₯Ό λ§Œλ“€μ–΄λ³΄μž

πŸ“• μ‚¬μš©μž μ½˜μ…‰

🌱 방문자

  • 였직 κΈ°μžκ°€ 올린 기사듀을 μ‘°νšŒν•  수만 μžˆλ‹€. λ‹€λ₯Έ κΆŒν•œμ€ 일체 μ—†λ‹€.

🐀 μΌλ°˜νšŒμ›

  1. 기사λ₯Ό μ‘°νšŒν•  수 μžˆλ‹€.
  2. 기사에 λŒ“κΈ€μ„ 달 수 μžˆλ‹€. λŒ“κΈ€μ— λŒ“κΈ€λ„ κ°€λŠ₯ν•˜λ‹€.
  3. 기사에 μ’‹μ•„μš”, μ‹«μ–΄μš” λ“± κ°μ •ν‘œν˜„μ„ ν•  수 μžˆλ‹€.
  4. λŒ“κΈ€μ—λ„ good, badλ₯Ό ν•  수 μžˆλ‹€.
  5. μ’‹μ•„ν•˜λŠ” 기자λ₯Ό ꡬ독할 수 μžˆλ‹€.
    ❗ λ‰΄μŠ€ν™ˆ 였λ₯Έμͺ½ μ•„λž˜μ— κ΅¬λ…ν•œ κΈ°μžλ“€μ˜ μ΅œμ‹  기사듀을 ν‘œμ‹œλ˜λŠ” κΈ°λŠ₯을 μΆ”ν›„ μ‹œκ°„μ΄ λ‚¨μœΌλ©΄ μΆ”κ°€ν•  μ˜ˆμ •
  6. κΈ°μžκ°€ 되고 싢은 νšŒμ›μ€ κΈ°μžμš”μ²­μ„ ν•  수 μžˆλ‹€. (κ΄€λ¦¬μžκ°€ μˆ˜λ½ν•˜λ©΄ 기자둜 λ³€κ²½)
  7. νšŒμ›νƒˆν‡΄λ₯Ό ν•  수 μžˆλ‹€.

βœ’οΈ 기자

  1. μΌλ°˜νšŒμ›μ΄ 가지고 μžˆλŠ” κΆŒν•œμ€ λ‹€ 가지고 μžˆλ‹€.
  2. 기사λ₯Ό μ“Έ 수 μžˆλ‹€.
    ❗ κ΅¬λ…μž μˆ˜μ™€ 쑰회 수, μ’‹μ•„μš” 수 등을 μ’…ν•©ν•˜μ—¬ κΈ°μžμˆœμœ„λ₯Ό λ§€κ²¨μ„œ ν‘œμ‹œν•˜λŠ” κΈ°λŠ₯을 μΆ”ν›„ μ‹œκ°„μ΄ λ‚¨μœΌλ©΄ μΆ”κ°€ν•  μ˜ˆμ •

πŸ‘‘ κ΄€λ¦¬μž

  1. κΈ°μžκ°€ 가지고 μžˆλŠ” κΆŒν•œμ„ λ‹€ 가지고 μžˆλ‹€.
  2. κΈ°μžμš”μ²­μ„ 수락 λ˜λŠ” 거절 ν•  수 μžˆλ‹€.
  3. νšŒμ›λ“€μ„ κ΄€λ¦¬ν•œλ‹€. = 강퇴가λŠ₯, κΈ°μ‚¬μ‚­μ œ κ°€λŠ₯
    ❗ μΆ”ν›„ μ‹œκ°„μ΄ λ‚¨μœΌλ©΄ κ°•ν‡΄λ‹Ήν•œ IDλ‘œλŠ” λ‹€μ‹œ κ°€μž…ν•˜μ§€ λͺ»ν•˜λŠ” κΈ°λŠ₯ μΆ”κ°€ν•  μ˜ˆμ •
  4. 각쒅 톡계λ₯Ό λ³Ό 수 μžˆλ‹€.

πŸ“˜ νŽ˜μ΄μ§€ μ½˜μ…‰

ν™ˆνŽ˜μ΄μ§€ : URL = '/', method = GET

homePage

  1. ν™”λ©΄ 상단에 λ°”λ₯Ό λ§Œλ“€μ–΄ νŽ˜μ΄μ§€μ΄λ¦„κ³Ό μ•„μ΄μ½˜μ„ ν‘œμ‹œν•œλ‹€. (μŠ€ν¬λ‘€μ„ μ•„λž˜λ‘œ 내리더라도 상단바와 ν…Œλ§ˆλŠ” 사라지지 μ•ŠλŠ”λ‹€.)
  2. 상단 λ°”μ˜ 였λ₯Έμͺ½μ—λŠ” λΉ„λ‘œκ·ΈμΈ μ‹œμ—λŠ” 둜그인 λ²„νŠΌμ΄, 둜그인 μ‹œμ—λŠ” μœ μ € λ‹‰λ„€μž„μ„ ν‘œμ‹œν•œλ‹€.
  3. 상단바 λ°”λ‘œ μ•„λž˜μ—λŠ” λ‰΄μŠ€ ν…Œλ§ˆλ³„ λ²„νŠΌμ„ ν‘œμ‹œν•œλ‹€.
  4. μ›ν•˜λŠ” ν…Œλ§ˆλ₯Ό ν΄λ¦­ν•˜λ©΄ ν™”λ©΄ μ „ν™˜μ—†μ΄ ν…Œλ§ˆλ³„ λ‰΄μŠ€λ“€μ΄ μ•„λž˜ν™”λ©΄μ— ν‘œμ‹œλœλ‹€.
  5. λ‰΄μŠ€λ“€μ€ μ™Όμͺ½ 였λ₯Έμͺ½μœΌλ‘œ λ‚˜λˆ  ν‘œμ‹œν•œλ‹€.
    • μ™Όμͺ½μ—λŠ” μ£Όμš”λ‰΄μŠ€λ“€λ‘œ λ§¨μœ„μ— κ°€μž₯ μ€‘μš”ν•œ λ‰΄μŠ€λ₯Ό 메인 이미지와 ν•¨κ»˜ ν‘œμ‹œν•˜κ³ , μ•„λž˜μ— λ‚˜λ¨Έμ§€ λ‰΄μŠ€λ“€μ„ ν‘œμ‹œν•œλ‹€.
    • 였λ₯Έμͺ½μ—λŠ” μœ„, μ•„λž˜λ‘œ λ‚˜λˆ  μœ„μ—λŠ” μ‘°νšŒμˆ˜κ°€ λ§Žμ€ λ‰΄μŠ€λ“€μ„ ν‘œμ‹œν•˜κ³ , μ•„λž˜μ—λŠ” κ΅¬λ…ν•œ κΈ°μžκ°€ 올린 λ‰΄μŠ€λ“€μ„ ν‘œμ‹œν•œλ‹€.

둜그인/νšŒμ›κ°€μž… νŽ˜μ΄μ§€ : URL = '/sign', method = GET

signPage

  1. κ·Έλ¦Όκ³ΌλŠ” 달리 ν™ˆνŽ˜μ΄μ§€μ—μ„œ 둜그인 λ²„νŠΌ ν΄λ¦­μ‹œ 둜그인 창만 쀑앙에 좜λ ₯ν•  μ˜ˆμ •.
  2. 그리고 SIGN UP λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ ν™”λ©΄μ „ν™˜ 없이 둜그인창이 사라지고 νšŒμ›κ°€μž…μ°½μ΄ λ‚˜μ˜€λ„λ‘ κ΅¬ν˜„ν•  μ˜ˆμ •.
  • 둜그인 : URL = '/login', method = POST
  • νšŒμ›κ°€μž… : URL = '/createaccount', method = POST

기사 νŽ˜μ΄μ§€ : URL = '/article?writer=circus&title=juggling', method = GET

article1 article1

  1. κ·Έλ¦Όμ—λŠ” 넣지 λͺ»ν–ˆμ§€λ§Œ, ν™”λ©΄ μ΅œμƒλ‹¨μ— ν™ˆνŽ˜μ΄μ§€μ— 있던 상단바와 ν…Œλ§ˆλ₯Ό ν‘œμ‹œν•  μ˜ˆμ •(μŠ€ν¬λ‘€μ„ 내리더라도 사라지지 μ•ŠμŒ)
  2. 상단에 기사 제λͺ©ν‘œμ‹œ, κ·Έ μ•„λž˜ λ³Έλ¬Έ ν‘œμ‹œ
  3. ν™”λ©΄ μ™Όμͺ½μ— ν•΄λ‹Ή 기사λ₯Ό μ“΄ 기자의 λ‹€λ₯Έ 기사듀 ν‘œμ‹œ(μŠ€ν¬λ‘€μ„ 내리더라도 사라지지 μ•ŠμŒ)
  4. 기사가 λλ‚˜λŠ” μ‹œμ μ— μ’‹μ•„μš”, μ‹«μ–΄μš”, ν™”λ‚˜μš”, κ·Έ λ’€λŠ”μš”? 등을 ν•  수 μžˆλ„λ‘ κ΅¬ν˜„ (κ·Έλ¦Όμ—” μ—†μ§€λ§Œ ꡬ독도 μΆ”κ°€ν•  μ˜ˆμ •)
  5. κ·Έ μ•„λž˜ λŒ“κΈ€μž…λ ₯λž€ κ΅¬ν˜„.(λ‘œκ·ΈμΈμ„ ν•˜μ§€ μ•Šμ€ μƒνƒœλΌλ©΄ λ“±λ‘λ²„νŠΌμ€ 둜그인 νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•œλ‹€.)
  6. λŒ“κΈ€μž…λ ₯λž€ μ•„λž˜ λŒ“κΈ€λ“€μ„ ν‘œμ‹œ, λŒ“κΈ€μ— λŒ“κΈ€μ„ 달 수 μžˆλ„λ‘ κ΅¬ν˜„(1κ°œκΉŒμ§€λ§Œ...)
  • 상단바 ν˜Ήμ€ ν…Œλ§ˆ 클릭 : URL = '/', method = GET
  • μ’‹μ•„μš” λ“± 감정 클릭 : μš”μ²­ URL = '/feeling' method = POST (ν™”λ©΄μ „ν™˜ μ—†μŒ)
  • ꡬ독 : μš”μ²­ URL = '/subscribe', method = POST (ν™”λ©΄μ „ν™˜ μ—†μŒ)
  • λŒ“κΈ€ 등둝 : μš”μ²­ URL = '/comment', method = POST (ν™”λ©΄μ „ν™˜ μ—†μŒ)

νšŒμ›μ •λ³΄ νŽ˜μ΄μ§€ : URL = '/userinfo', method = POST

userInfo

  1. νšŒμ›μ •λ³΄ ν‘œμ‹œ
  2. κΈ°μžμš”μ²­ : μš”μ²­ URL = '/please', method = GET (ν™”λ©΄μ „ν™˜ μ—†μŒ)
  3. 기사쓰기 : URL = '/writingPage', method = GET
  4. νšŒμ›νƒˆν‡΄ : URL = '/withdraw', method = GET (ν™ˆνŽ˜μ΄μ§€λ‘œ 이동)

κΈ°μ‚¬μž‘μ„± νŽ˜μ΄μ§€ : URL = '/writingPage', method = GET

writingPage

  1. 기사λ₯Ό μž‘μ„±ν•  수 μžˆλŠ” νŽ˜μ΄μ§€ ν™ˆνŽ˜μ΄μ§€μ— λ…ΈμΆœλ  제λͺ©κ³Ό 본문을 적을 수 μžˆλ‹€.
  2. μ΄λ―Έμ§€μ‚½μž…μ€ 곡뢀해봐야 μ–΄λ–»κ²Œ 될지 μ•Œκ²ƒ κ°™λ‹€.
  3. ν°νŠΈμŠ€νƒ€μΌλ„ 곡뢀해봐야 μ•Œκ²ƒ κ°™λ‹€. λ‹€λ₯Έ κΈ°λŠ₯ κ΅¬ν˜„ ν›„ μ‹œκ°„μ΄ λ‚¨μœΌλ©΄ μ μš©ν•  μ˜ˆμ •
  4. μ—…λ‘œλ“œ : URL = '/upload', method = POST

πŸ“† μΌμ •κ³„νš

  • μš°μ„  ν™ˆνŽ˜μ΄μ§€μ™€ 둜그인/νšŒμ›κ°€μž… νŽ˜μ΄μ§€, 그리고 νšŒμ›κ°€μž…κ³Ό 둜그인 κΈ°λŠ₯κΉŒμ§€ κ΅¬ν˜„ν•œ ν›„ 1μ°¨ PR을 λ‚ λ¦¬μž.
  • 이번주 μ£Όλ§κΉŒμ§€ 1μ°¨PR을 λ‚ λ €λ³΄μž.

news-web-site-nodejs's People

Contributors

jeuk817 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.