1

我正在尝试编写一个控制器,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标签。

下面是解析markdown的代码:

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 函数时,我尝试过转义和取消转义,但似乎没有帮助。

4

1 回答 1

0

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

res.send(JSON.stringify({ html: parseMarkdown(raw)});
于 2012-04-22T15:48:04.280 回答