node.js, express

YOUNGJOO-YOON·2021년 7월 26일
0

node.js

목록 보기
1/3

Tree 구조

.
├── data
│   ├── A
│   ├── B
│   └── C
├── index.html
├── main.js
└── template.js

main.js

const express = require('express');
const app = express();
const fs = require('fs');
const template = require('./template.js');

app.get('/', (req, res) => {
  //   fs.readdir('./data', (err, fileList) => {
  //     console.log('fileList: ', fileList);
  //   });
  fs.readdir('./data', (err, fileList) => {
    const title = 'Welcome';
    const description = 'Hello, Node.js and Express';
    let list = template.list(fileList);
    let html = template.HTML(
      title,
      list,
      `<a href="/create">create</a>`,
      `<h2>${title}</h2>
  	${description}`
    );
    res.send(html);
  });
});

app.get('/page', (req, res) => {
  return res.send('/page = page');
});

app.listen(9000, () => {
  console.log('node express on');
});

  • code 분석 1
const express = require('express'); // express 호출
const app = express(); // express 선언
const fs = require('fs'); // file system 호출
const template = require('./template.js'); // html template 호출

  • code 분석 2
app.get('/', (req, res) => { // 'router'를 인자로 받아 req, res 동작을 해줌
  fs.readdir('./data', (err, fileList) => { // fs를 통해 './data dir을 뒤짐
    										// err, [fileTitle] 배열을 반환
    const title = 'Welcome'; 
    const description = 'Hello, Node.js and Express';
    let list = template.list(fileList);
    let html = template.HTML(
      title,
      list,
      `<a href="/create">create</a>`,
      `<h2>${title}</h2>
  	${description}`
    );
    res.send(html);
  });
});

app.get('/page', (req, res) => {
  return res.send('/page = page');
});

app.listen(9000, () => {
  console.log('node express on');
});

template.js

module.exports = {
  HTML: (title, list, control, body) => {
    return `
			<!DOCTYPE html>
			<html lang="en">
			<head>
				<meta charset="UTF-8">
				<meta http-equiv="X-UA-Compatible" content="IE=edge">
				<meta name="viewport" content="width=device-width, initial-scale=1.0">
				<title>${title}</title>
			</head>
			<body>
			${list}
			${control}
			${body}
			</body>
			</html>
		`;
  },
  list: (fileList) => {
    let list = '<ul>';
    let i = 0;
    while (i < fileList.length) {
      list =
        list +
        `
			<li>
			<a href="/?id=${fileList[i]}"> // url을 지정해 줌
			${fileList[i]}</a>
			</li>`;
      i = i + 1;
    }
    list = list + '</ul>';
    return list;
  },
};
profile
이 블로그의 글은 제 생각을 정리한 글과 인터넷 어딘가에서 배운 것을 정리한 글입니다. 출처는 되도록 남기도록 하겠습니다. 수정 및 건의 오류 등이 있으면 언제든지 댓글 부탁드립니다.

0개의 댓글