我正在尝试在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函数时,我试图摆脱逃避和失败,但它似乎没有帮助。
答案 0 :(得分:0)
我认为你需要发送一个包含json的字符串,而不是响应中的实际对象。试试这个:
res.send(JSON.stringify({ html: parseMarkdown(raw)});