提问者:小点点

将可读对象stdout进程重定向到节点中的文件


我使用NPM库将markdown解析为HTML,如下所示:

var Markdown = require('markdown-to-html').Markdown;
var md = new Markdown();

...

md.render('./test', opts, function(err) {
  md.pipe(process.stdout)
});

这将结果按预期输出到我的终端。

然而,我需要在我的节点程序执行内部的结果。 我考虑过将输出流写入文件,然后在以后读入,但我无法找到将输出写入文件的方法。

我尝试使用var file=fs.createWriteStream('./test.html');,但node.js流给我带来的不是结果,而是头痛。

我还研究了库的repo和markdown通过util从Readable继承,如下所示:

var util = require('util');

var Readable = require('stream').Readable;
util.inherits(Markdown, Readable);

如有任何资源或建议,将不胜感激。 (我也会使用另一个库来解析markdown,但这给了我到目前为止最好的结果)


共1个答案

匿名用户

实际上,创建一个可写的文件流并将markdown通过管道传输到这个流应该可以很好地工作。 尝试使用:

const writeStream = fs.createWriteStream('./output.html');
md.render('./test', opts, function(err) {
  md.pipe(writeStream)
});

// in case of errors you should handle them
writeStream.on('error', function (err) {
  console.log(err);
});