1

私は、expressいくつかのマークダウンを受け取り、フォーラム投稿用の HTML を返すコントローラーを作成しようとしています。

コマンドラインで期待される動作が得られます。

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

しかし、HTTP POSTChromeによると次のフォームデータを持つリクエストを受け取った場合

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関数に渡すときにエスケープとエスケープ解除をいじってみましたが、役に立たなかったようです。

4

1 に答える 1

0

応答の実際のオブジェクトではなく、json を含む文字列を送信する必要があると思います。これを試して:

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