Tree 구조
.
├── data
│ ├── A
│ ├── B
│ └── C
├── index.html
├── main.js
└── template.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');
});
const express = require('express'); // express 호출
const app = express(); // express 선언
const fs = require('fs'); // file system 호출
const template = require('./template.js'); // html template 호출
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');
});
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;
},
};