使用node-markdown模块渲染markdown时输出不一致

时间:2012-04-22 07:56:36

标签: node.js express markdown

我正在尝试在express中编写一个控制器,它需要一些降价并返回一些HTML论坛帖子。

我在命令行中获得了预期的行为:

> var md = require('node-markdown').Markdown;
undefined
> md("\n\ndon't mind me\n====")
'<h1>don\'t mind me</h1>'

但是,如果我收到HTTP POST请求,根据Chrome提供以下表单数据

raw:\n\ndon't mind me\n====

我收到此回复:

<p>\n\ndon't mind me\n====</p>

无法正确识别H1标记。

以下是解析降价的代码:

var md = require('node-markdown').Markdown;

var parseMarkdown = (function () {
return function (raw_md) {
    return md(raw_md);
}
}());

这是我的控制器代码:

app.post('/render_markdown', function (req, res) {
    res.header('Access-Control-Allow-Origin', '*');
            res.header('Content-Type', 'application/json');
    var raw = req.body['raw'];
    res.send({ html: parseMarkdown(raw)});
});

任何人都知道这里会发生什么?当我将输入传递给Markdown函数时,我试图摆脱逃避和失败,但它似乎没有帮助。

1 个答案:

答案 0 :(得分:0)

我认为你需要发送一个包含json的字符串,而不是响应中的实际对象。试试这个:

res.send(JSON.stringify({ html: parseMarkdown(raw)});