Node-js-2

Node-js - Log in ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ


ํด๋” ๊ตฌ์กฐ ์ตœ์ ํ™” git, github ์—…๋กœ๋“œ nodemon โ€”

Package.json / node_modules

npm init -y : package.json ์„ค์ • -> npmํ™ˆํŽ˜์ด์ง€์—์„œ ๋“ฑ๋ก ์‹œ ์ฐพ๊ธฐ ๊ฐ€๋Šฅ, ๊ธฐ๋ณธ ๊ฐ’, ์„ค๋ช… ์„ธํŒ…

package.json

{
  "name": "login-lecture-test",	// ๊ธฐ๋ณธ ์ด๋ฆ„
  "version": "1.0.0",		// ๋ฒ„์ „
  "description": "",			// ํ”„๋กœ๊ทธ๋žจ ์„ค๋ช…
  "main": "app.js",			// ๋ฉ”์ธ ํ•จ์ˆ˜
  "bin": {
    "login-lecture-test": www.js	// ๊ธฐ๋ณธ ์‹คํ–‰ ํ•จ์ˆ˜
  },
  "dependencies": {
    "express": "^4.17.1",		// ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜์กดํ•˜๋Š” ๋ชจ๋“ˆ ( ์ด์ „์— ์„ค์น˜ํ–ˆ๋˜ express, ejs)
    "ejs": "^3.1.6"	
  },
  "devDependencies": {},		// ๊ฐœ๋ฐœ ์‹œ ์˜์กดํ•˜๋Š” ํ•จ์ˆ˜ ( ex> prettier )
  "scripts": {			// ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๋ช…๋ น์–ด ์„ค์ •
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],			// ๊ฒ€์ƒ‰ ์‹œ ํ‚ค์›Œ๋“œ
  "author": "",			// ๊ถŒํ•œ์ž (์ด๋ฆ„)
  "license": "ISC"			// ๋ผ์ด์„ผ์Šค
}

start๋ผ๋Š” ๋ช…๋ น์–ด๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋ ค๋ฉด ? scirpt !

"scripts": {
    "start": "node ./bin/www.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

homepage, git url ์„ค์ • ๊ฐ€๋Šฅ

node_modules express, ejs์™€ ๊ฐ™์€ npm ๋ชจ๋“ˆ๋“ค์„ ๋ชจ์•„๋‘”๋‹ค. git ์— ์ €์žฅํ•  ๋•Œ ์˜ฌ๋ฆด ํ•„์š”๋Š” ์—†๋‹ค. ์™œ? package๋ฅผ ํ†ตํ•ด dependencies ์— ์ €์žฅ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋‹ค์‹œ ์„ค์น˜๊ฐ€๋Šฅ

"dependencies": {
    "express": "^4.17.1",		// ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜์กดํ•˜๋Š” ๋ชจ๋“ˆ ( ์ด์ „์— ์„ค์น˜ํ–ˆ๋˜ express, ejs)
    "ejs": "^3.1.6"	
  },

package-lock.json : ์กฐ๊ธˆ ๋” ๋ช…ํ™•ํ•˜๊ณ  ์ƒ์„ธํ•œ package

๊นƒ, ๊นƒํ—ˆ๋ธŒ์— ๋…ธ๋“œ ์—…๋กœ๋“œ

nano gitignore : gitignore ๋‚ด์— ์ž…๋ ฅ ๋ฐ ํŒŒ์ผ ์ƒ์„ฑ

.gitignore ๋‚ด์—๋Š” node-module์„ ๋„ฃ์–ด github์— ์˜ฌ๋ฆฌ์ง€ ์•Š๋„๋ก ํ•œ๋‹ค. why? package.json์„ ํ†ตํ•ด์„œ ๋‹ค์‹œ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

์ „์ฒด์ ์œผ๋กœ node.js๋ฅผ ์˜ฌ๋ฆด ๋•Œ ignore ๋˜๋Š” ๊ฒƒ์„ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ์ •๋ฆฌํ•ด์ค€ ๊ณณ (node๋ฅผ ์„ ํƒ) ๊ทธ ์•ˆ์— **node-module์„ ํ•ด์ค˜์„œ ํด๋” ๊ตฌ์กฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋˜์–ด์žˆ๋“  ์ด๋ฆ„๋งŒ ๊ฐ™์œผ๋ฉด ignoreํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.

s1

license๋„ github๋‚ด์—์„œ ์ฐพ์•„ ์˜ฌ๋ฆฌ์ž .

ํด๋”๊ตฌ์กฐ ์ตœ์ ํ™” + public ์•ˆ์— js ํŒŒ์ผ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ.

app -> bin, src, app.js๋ฅผ ๋„ฃ์ž

ํด๋”๋ฅผ ์ตœ์ ํ™” ํ•  ๋–„,

login.ejs ์—ฌ๊ธฐ์„œ js๋กœ ๋ฐ”๋กœ ๊ฐˆ ์ˆ˜๊ฐ€ ์—†๋‹ค.

public์„ ๋งŒ๋“ค์–ด์„œ ์•ˆ์— src/public/js/home/ ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  static ๊ฒฝ๋กœ๋ฅผ ์ƒ์„ฑํ•ด์ค˜์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ• ์ˆ˜ ์žˆ๋„๋กํ•œ๋‹ค.

app.js
app.use(express.static(`${__dirname}/src/public`)); // public์œผ๋กœ ํด๋” ๊ตฌ์กฐ ๋งŒ๋“ค ๋•Œ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
app.use("/", home);

์œ„์—์„œ ๋งŒ๋“  js ํด๋”๋Š” ํ”„๋ก ํŠธ ๋‹จ์—์„œ ์›€์ง์ด๋Š” javascript๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

ํด๋” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

s2

nodemon์œผ๋กœ ์„œ๋ฒ„ ๋„์šฐ๊ธฐ / ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ ๋†’์ด๊ธฐ

์„œ๋ฒ„๋ฅผ ๊ป๋‹ค๊ฐ€ ์ผœ๋Š” ๊ฒƒ์„ ์•ˆํ•˜๊ณ  ์ผ  ์ƒํƒœ์—์„œ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด๋„ ๋ฐ”๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.
ํ„ฐ๋ฏธ๋„ ์ด์šฉ ์‹œ powershell์—์„œ ์•ˆ๋จ! bash๋‚˜ cmd ์ด์šฉํ•ด์„œ nodemon ์„ค์น˜ํ•  ๊ฒƒ

	npm install nodemon -g

ํƒœ๊ทธ: ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: