여씨의 개발이야기

[Node.js] Node를 이용해 React project 내의 file 경로 가져오기 본문

🐾 Programming Lang/🎈 Node.js

[Node.js] Node를 이용해 React project 내의 file 경로 가져오기

yeossi 2022. 2. 21. 00:25

index.js 파일

var express = require('express');
var path = require('path');
var router = express.Router();

router.get('/', function (req, res) {
    res.send({ greeting: 'hihinode' });
});

router.get('/getFileList', function (req, res) {
    const fs = require('fs');
    const dir = './public/template';
    const folders = fs.readdirSync(dir).filter((f) => fs.lstatSync(path.join(dir, f)).isDirectory());
    var cardArr = new Array();
    for (const folder of folders) {
        //console.log(folder);
        const files = fs.readdirSync(path.join(dir, folder));
        var card = new Object();
        card.dir = './template/' + folder + '/';
        card.fileList = new Array();
        // const article = fs.readFileSync(path.join(dir, folder + "/info.txt"));
        // console.log(article.toString());
        for (const file of files) {
            if (path.extname(file) === ".txt") {
                const article = fs.readFileSync(path.join(dir, folder + "/info.txt"));
                card.name = article.toString().split('\n')[1].split("- ")[1]; // title은 info.txt에서 제목을 가져온다.
                card.info = article.toString();
            }
            else {
                card.fileList.push(file);
            }
            //console.log("ㄴ" + file);
        }
        card.cnt = card.fileList.length - 2; // 썸네일 이미지, 맨 앞 이미지 파일 개수는 제외한다.
        cardArr.push(card);
    }
    res.json(cardArr);
});
module.exports = router;

 

server.js 파일

const express = require('express');
const app = express();
const api = require('./routes/index');

app.use('/api', api);

const port = 3002;
app.listen(port, () => console.log(`test ${port}`));

 

Comments