在无点Javascript中绑定变量

时间:2016-09-26 15:31:25

标签: javascript functional-programming

我最近在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中访问路径?

0 个答案:

没有答案