3

私は次の高速ルートを持っています:

var data = [
    {
        id: 1,
        title: 'aide-memoire'
    },
    {
        id:2,
        title: 'apres moi'
    }
];

app.get('/', function (req, res) {
    res.render('photo/list', {
        data: data
    });
});

私のJADEテンプレートでは、次のようなデータを取得しています。

!!!5
html
    head
    body
        script
            var data = !{JSON.stringify(calculates)};

しかし、私はこのようなクライアントでそのデータ配列を取得します:

<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <script type="text/javascript">
        var data = [
            { "id":1, "title": 'aide-memoire'},
            { "id":2, "title": 'apres moi'}
        ];
        </script>
    </body>
</html>

ただし、非ASCII文字を次のような\uXXXXシーケンスとしてエンコードする必要があります。

[
    {"id":1, "title": "aide-m%E9moire"},
    {"id":2, "title": "apr%E8s%20moi"}  
]

エクスプレス/ジェイドでそれを行うにはどうすればよいですか?

4

1 に答える 1

6
JSON.stringify(["ä", "ä"]).replace(/[\u0080-\uFFFF]/g, function(m) {
    return "\\u" + ("0000" + m.charCodeAt(0).toString(16)).slice(-4);
});
//["\u00e4","\u00e4"]

JSON.stringify([{title: "ä"}, {title: "ä"}]).replace(/[\u0080-\uFFFF]/g, function(m) {
    return "\\u" + ("0000" + m.charCodeAt(0).toString(16)).slice(-4);
});
//[{"title":"\u00e4"},{"title":"\u00e4"}]

これは完全に役に立たず、より大きな応答を提供するためにCPUを無駄にしますが、:/ node.jsで使用される各CPUサイクルは、クラスター化しない限りサーバー全体がダウンするCPUサイクルであることを忘れないでください。

于 2013-03-24T17:53:03.780 に答える