c o d i n g . . ๐Ÿ‰/Node.js 7

[์ƒํ™œ์ฝ”๋”ฉ] NodeJs ํ™œ์šฉํ•˜๊ธฐ(2)

Session : cookie๋ฅผ ์กฐ๊ธˆ ๋” ๊ฐœ์„ ํ•œ ๋ฐฉ๋ฒ• ์ฟ ํ‚ค์™€ ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ž˜ ์กฐํ•ฉํ•ด ์„ธ์…˜์„ ๋งŒ๋“ ๋‹ค cookie๋Š” id๋‚˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋‹ค๋ฃจ๊ธฐ์—๋Š” ์œ„ํ—˜ํ•˜๋‹ค → ๋ณด์•ˆ ๋ฌธ์ œ ์„ธ์…˜์€ ์„œ๋ฒ„๊ฐ€ ์ฟ ํ‚ค ๋ฐฉ์‹์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š”๋ฐ ์ด๋•Œ ์ฟ ํ‚ค์™€ ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉ์ž์˜ ์‹๋ณ„์ž id ๊ฐ’๋งŒ์„ ์ €์žฅํ•œ๋‹ค → ์‹ค์ œ ๋ฐ์ดํ„ฐ๋Š” ์„œ๋ฒ„์˜ database์— ์ €์žฅ๋˜์–ด ์žˆ๋‹ค ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ๊ฐ€ id๋ฅผ ๊ฐ–๊ณ  ์„œ๋ฒ„์— ์ ‘์†ํ•  ๋•Œ ์„œ๋ฒ„๊ฐ€ ํ•ด๋‹น id ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” data๋ฅผ ์ฝ์–ด์™€ ์‚ฌ์šฉํ•œ๋‹ค ↓↓ ์‹ค์ œ๋กœ ์„ธ์…˜์˜ set-cookie์—๋Š” connect.sid์˜ ๊ฐ’๋งŒ ์žˆ๊ณ  ์ฟ ํ‚ค์˜ set-cookie์—๋Š” count์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค ๋‹ค์‹œ ๋งํ•˜๋ฉด session์€ ํด๋ผ์ด์–ธํŠธ์— ์‚ฌ์šฉ์ž์˜ id ๊ฐ’๋งŒ ์ €์žฅํ•˜๊ณ , cookie๋Š” ํด๋ผ์ด..

[์ƒํ™œ์ฝ”๋”ฉ] NodeJs ํ™œ์šฉํ•˜๊ธฐ(1)

HTTP : ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„๊ฐ€ ์†Œํ†ต(request, response message)ํ•˜๋Š” ํ†ต์‹  ๋ฐฉ๋ฒ• - stateless Cookie : ์„œ๋ฒ„์—์„œ ์ „์˜ ๊ธฐ๋ก์„ ์ €์žฅ → session → ์ธ์ฆ์œผ๋กœ ํ™•์žฅ๋  ์ˆ˜ ์žˆ์Œ ์ด์ œ Nodejs๋ฅผ ์ด์šฉํ•ด์„œ count์˜ ์ˆ˜๋ฅผ ๋Š˜๋ ค๊ฐ€๋ฉด์„œ response ํ—ค๋”๋ฅผ ํ†ตํ•ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์„ธํŒ…ํ•˜๋ผ๊ณ  ๋ช…๋ นํ•œ๋‹ค ๊ทธ๋ฆฌ๊ณ  ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„์˜ ๋ช…๋ น์— ๋”ฐ๋ผ ๋‹ค์Œ์— ๋ฐฉ๋ฌธํ–ˆ์„ ๋•Œ count๋ฅผ 2๋กœ ๋ฐ”๊พผ๋‹ค !! ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๊ฒŒ ํ•„์š”ํ•œ์ง€ ์•Œ์•„๋ณด๋ฉด !! https://expressjs.com/en/4x/api.html#req.cookies Express 4.x - API Reference Express 4.x API express() Creates an Express application. T..

[์ƒํ™œ์ฝ”๋”ฉ] Node.js ๋ฅผ ์ด์šฉํ•ด ์›น์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ(4)

๊ธ€ ๋ชฉ๋ก ๋งŒ๋“ค๊ธฐ ์ €์žฅ๋œ data๋ฅผ ์ฝ์–ด์˜ค๋Š” ๋ฒ• *GET์— ๋Œ€ํ•œ ๋ผ์šฐํŠธ app.get('/topic', function(req, res){ // get ๋ฐฉ์‹์œผ๋กœ /topic ๋ผ์šฐํŠธ fs.readdir('data', function(err, files){ if(err){ res.status(500).send('Internal Server Error'); } res.render('view', {topics: files}); }) }) ํ…œํ”Œ๋ฆฟ์—”์ง„์„ ์ด์šฉํ•œ๋‹ค app.set('views', './views_file'); app.set('view engine', 'pug'); ์ „ ์ˆ˜์—…์—์„œ ์ž‘์„ฑํ–ˆ๋˜ ์ด ์ฝ”๋“œ๊ฐ€ ์žˆ์–ด์•ผ ํ•จ readdir์„ ์ด์šฉํ•ด์„œ data๋ฅผ ์ฝ์–ด์˜จ๋‹ค ๊ทธ๋•Œ callback ํ•จ์ˆ˜๋Š” err์™€ file ๋ชฉ๋ก(f..

[์ƒํ™œ์ฝ”๋”ฉ] Node.js ๋ฅผ ์ด์šฉํ•ด ์›น์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ(3)

์ฟผ๋ฆฌ์ŠคํŠธ๋ง http://a.com/topic?id=1 protocol / domain / path / query string ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์— ๋”ฐ๋ผ ๊ฐ™์€ path์—์„œ๋„ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค app.get('/topic', function(req, res){ let topics = [ 'Javascript is...', 'Nodejs is...', 'Express is...' ]; let str = ` JavaScript Nodejs Express ` let output = str + topics[req.query.id]; res.send(output); }); aํƒœ๊ทธ๋ฅผ ์ด์šฉํ•ด์„œ ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์„ ๋ฐ”๊ฟ”์ค€๋‹ค ๋”๋ณด๊ธฐ app.get('/topic',function(req, res){ let topics = [ '..

[์ƒํ™œ์ฝ”๋”ฉ] Node.js ๋ฅผ ์ด์šฉํ•ด ์›น์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ(2)

๋™๊ธฐํ™” ๋น„๋™๊ธฐํ™” let fs = require('fs'); // Sync console.log('1'); let data = fs.readFileSync('data.txt',{encoding:'utf8'}); console.log(data); //Async console.log('2'); fs.readFile('data.txt', {encoding:'utf8'}, function(err, data){ console.log('3'); console.log(data); }); console.log('4'); Express express๋ฅผ ์„ค์น˜ํ•œ ํ›„! let express = require('express'); let app = express(); app.get('/', function(req, res){ r..

[์ƒํ™œ์ฝ”๋”ฉ] Node.js ๋ฅผ ์ด์šฉํ•ด ์›น์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ(1)

์•„๋ž˜์˜ ๋”๋ณด๊ธฐ๋Š” ์ฒ˜์Œ์œผ๋กœ ๊ฐ•์˜์—์„œ ์ง„ํ–‰ํ•œ ๋ถ€๋ถ„! ๋”๋ณด๊ธฐ ํด๋”๋ฅผ ๋งŒ๋“  ํ›„ hello.js ํŒŒ์ผ์—์„œ alert๋ฅผ ๋„์šฐ๋„๋ก ์ž‘์„ฑ ํ›„ ์ €์žฅ [์œˆ๋„์šฐ์—์„œ] ํ„ฐ๋ฏธ๋„์„ ์—ด ๋• ์œˆ๋„์šฐ ํ‚ค + r cmd๋ฅผ ์„ ํƒ ํ›„ ์—ด๊ณ  cd๋ฅผ ํ†ตํ•ด ํŒŒ์ผ์— ์ ‘๊ทผ dir/w๋กœ ํŒŒ์ผ ๋ชฉ๋ก ํ™•์ธ, ๋ฌด์—‡์ด ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์œผ๋ฉด dir node hello.js๋ฅผ ์ž…๋ ฅํ•˜๋ฉด nodejs๋กœ hello.js ํŒŒ์ผ ์‹คํ–‰ ์•„๋ž˜๋Š” node.js ํ™ˆํŽ˜์ด์ง€์— ๋‚˜์™€์žˆ๋Š” ๊ฐ„๋‹จํžˆ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“œ๋Š” ์ฝ”๋“œ const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res..