将模块功能传递给另一个文件中的功能

时间:2016-03-22 01:06:35

标签: javascript node.js javascript-marked

我不确定这里发生了什么,但它已经困扰了我一段时间。 marked节点降价解析器的工作方式如下:

var marked = require('marked');
marked.setOptions({ mathjax : false });

这一切都有效。但我正在构建一个插件系统,我想将标记的模块函数传递给另一个文件中的函数,并在该函数中设置选项:

// main.js
var marked = require('marked');
var plugin = require('./plugin');
plugin(marked);
marked("# my markdown\n $$5 + 5$$", function(err, result) {
  // this result still parses mathjax. Setting the option in the main
  // file will disable mathjax.
  console.log(result);
});

// plugin.js
module.exports = function(marked) {
  marked.setOptions({ mathjax: false });
}

marked函数正确传递给我的插件函数,调用了setOptions函数,但是当我在主脚本中使用marked后,未设置选项。如果我在主脚本中设置选项,它就可以了。

我有点不确定marked是否为Function,而setOptions()的实施可能是其中的罪魁祸首?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你说你切换到kramed,setOptions kramed它返回kramed的实例。因此,在另一个文件中设置选项可能不会改变main.js// main.js var kramed = require('kramed'); var plugin = require('./plugin'); kramed = plugin(kramed); kramed("# my markdown\n $$5 + 5$$", function(err, result) { console.log(result); }); //plugin.js module.exports = function(kramed) { return kramed.setOptions({ mathjax: false }); } 的全局实例。至少改为以下作品:

 func Start () {

 }