Javascript 如何使用标记的md解析器构造Node Js博客

Javascript 如何使用标记的md解析器构造Node Js博客,javascript,node.js,markdown,Javascript,Node.js,Markdown,目前正在使用NodeJS/Express4创建一个简单的博客引擎。 我想用降价语言发布博客文章 我发现marked:非常适合我的需要,并创建了一个真正的基本解决方案,从md文件中获取数据并在客户机中显示 我遇到的问题是如何将我的解决方案实际安装到NodeJS应用程序的正确MVC结构中。这是我制作的,它适用于index.js中的一个md文件: app.get('/test', function(req, res) { var path = __dirname + '/node_modules/

目前正在使用NodeJS/Express4创建一个简单的博客引擎。 我想用降价语言发布博客文章

我发现marked:非常适合我的需要,并创建了一个真正的基本解决方案,从md文件中获取数据并在客户机中显示

我遇到的问题是如何将我的解决方案实际安装到NodeJS应用程序的正确MVC结构中。这是我制作的,它适用于index.js中的一个md文件:

app.get('/test', function(req, res) {
  var path = __dirname + '/node_modules/marked/doc/todo.md';
  var file = fs.readFileSync(path, 'utf8');
  res.send(marked(file.toString()));
});
我还找到了一个解决方案,可以使用walk递归扫描特定目录以获取所有博客文章(在md中):

var walker  = walk.walk('./node_modules/marked/doc', { followLinks: false });
walker.on('file', function(root, stat, next) {
  console.log(root + '/' + stat.name);
  next();
});
如何将多个md帖子连接到正确区域中的一个html响应中-其他页面请求如下所示:

var users = require('./routes/users');
app.use('/users', users);
在index.js中,然后

router.get('/', function(req, res, next) {
  res.render('users', { title: 'Express' });
});
在routes users.js中

我试过这样的方法:

var string = '';
app.get('/test', function(req, res) {
  walker.on('file', function(root, stat, next) {
    var path = __dirname + root + '/' + stat.name;
    var file = fs.readFileSync(path, 'utf8');
    string += (marked(file.toString()));
    next();
  });
  res.send(string);
});
这是行不通的,而且肯定不是最好的解决方案。 有什么建议吗

像这样的东西(完全未经测试)可能会有帮助:

app.get('/test', function(req, res) {
  var string = '';

  walker.on('file', function(root, stat, next) {
    var path = __dirname + root + '/' + stat.name;
    var file = fs.readFileSync(path, 'utf8');
    string += (marked(file.toString()));
    next();
  });

  walker.on('end', function() {
    res.send(string);
  });

  walker.walk(/* whatever */);
});

您可能需要考虑的第一件事是在节点应用程序中使用同步IO。例如,您好,我正在考虑集成promises,但现在,我只想要核心功能。好吧,即使只使用普通的
fs.readFile
及其回调,而不是
fs.readFileSync
,也会有所帮助。这不是你问题的原因,不过…对不起,我还没有用过那个文件漫游器。看起来它应该能工作。:-)没问题,谢谢你的建议,你能推荐一种不同的方法来遍历你知道的目录吗?如果你的解决方案使用fs工作,我想是走递归方法导致了问题——这很好,因为我希望使用尽可能少的附加包。Well,很高兴它工作了。对不起,我没有时间调查。