So I decided to redo a blog and am using markdown, I have three markdown files in a folder called blog and was wanting to list them in order by date. Problem is Im not sure what I did to screw up my array.
Heres my routes.js file
exports.list = function(req, res){
var walk = require('walk'), fs = require('fs'), options, walker;
var walker = walk.walk('blog');
var fs = new Array();
walker.on("file", function(root,file,next){
var f = root + "/" + file['name'].substring(0, file['name'].lastIndexOf('.'));
// push without /blog prefix
if (file['name'].substr(-2) == "md") {
fs.push(f.substring(f.indexOf('/')));
console.log(fs);
}
next();
});
walker.on("end", function() {
var model = {
layout:'home.hbs',
title: 'Entries',
files: fs
};
res.render('home.hbs', model)
});
};
But what I return in terminal is this:
[ '/first' ]
[ '/first', '/second' ]
[ '/first', '/second', '/third' ]
Say I just wanted to display the first two and have them sorted by date in a markdown file, like so:
Title: Lorem Ipsum dolor sit amet
Date: January 2d, 2012
# test message
Whats wrong with my array/rest of code
First thing I noticed is redeclaring of
fsvariable. In line 2 it’s Node’s Filesystem module, in line 4 it’snew Array()(which should be[]if you ask me).I’m also not sure what is
walkermodule for and, since it’s github repo was removed and npm package is outdated, I recommend you use raw filesystem module API to list files, probably path module to handle your files locations and some async to glue it together: