我最近在js中尝试过无点样式,并且非常享受它让我如何看待编程。作为一项练习(主要是沮丧),我一直在重建我的个人网站建设者。从文体上来说,我喜欢主程序:
//MAIN
const inputPosts = read(POSTS_PATH);
const inputPages = read(PAGES_PATH);
• build all the page & post templates
• output all the pages
但是,正因如此,glob& fs需要处于同步模式。但是,现在我忘记了readFile中的文件路径,并且当前将其硬编码为POSTS_PATH( yuck )。
const glob = require('glob');
const fs = require('fs');
const POSTS_PATH = "content/posts/";
const PAGES_PATH = "content/pages/";
const comp = (f, g) => x => f(g(x));
const map = f => list => list.map(f);
function findFiles(path) {
const files = glob.sync("*.md", { cwd: path });
return files;
}
function readFile(file){
return fs.readFileSync(POSTS_PATH + file, {
encoding: 'utf8'
});
}
const read = comp(map(readFile), findFiles);
const inputPosts = read(POSTS_PATH);
如果我使用的是非同步版本,我可以将glob的绑定路径绑定到readFile,我可以从findFiles返回一个数组:
return [path, files]
然而它变得非常混乱。
如何保持这种简单并从readFile中访问路径?