如何使用标记的 md 解析器构建 Node Js 博客
How to structure a Node Js blog with marked md parser
目前正在使用 NodeJS / Express4 创建一个简单的博客引擎。
我想用markdown语言发布博文
我找到了标记:https://github.com/chjj/marked,它非常适合我的需要,并且创建了一个真正的基本解决方案来从 md 文件中获取数据并将其显示在客户端中。
我遇到的问题是我的解决方案实际上适合 NodeJS 应用程序的正确 MVC 结构。这是我制作的,这适用于一个 md 文件 - 在 index.js:
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' });
});
在路线 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 */);
});
目前正在使用 NodeJS / Express4 创建一个简单的博客引擎。 我想用markdown语言发布博文
我找到了标记:https://github.com/chjj/marked,它非常适合我的需要,并且创建了一个真正的基本解决方案来从 md 文件中获取数据并将其显示在客户端中。
我遇到的问题是我的解决方案实际上适合 NodeJS 应用程序的正确 MVC 结构。这是我制作的,这适用于一个 md 文件 - 在 index.js:
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' });
});
在路线 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 */);
});