0

ソケットを介して投稿メッセージをブロードキャストする必要がある小さな Node.js webapp があります。ここでの主な問題は、投稿の req.body 部分が Object 型であることです。toString() 関数を介して変換すると、型名のみが変換されるため、「オブジェクト」のみが表示されます。

req.body.toString()
"[object Object]"

con は dict.js 辞書です。ちなみに、とてもいいです。ソケットは、con dict の値の部分にあります。

ここに郵便番号:

router.post('/message', function (req, res) {
    con.forEach(function (value, key) {
        if (key != user) {
            debug("BROADCAST: " + user + " -> " + key);
            value.write(req.body);
        }
    });
    var answer = "[{\"urls\":\"here_be_dragons"}]";
    res.send(answer);
});

bodyParser も試しましたが、 typeof(req.body) は常に「オブジェクト」を返します (ただし、router.use(bodyParser.text()) を設定すると、おそらくそうするはずです):

typeof(req.body)
"object"

また、req.body オブジェクトの情報が正しいこともわかります。

私の質問は次のとおりです: req.body を正しい情報を持つ文字列型にするにはどうすればよいですか?

4

2 に答える 2

1

querystringモジュールで解決しました!

var qs = require('querystring');

stringify および unescape メソッドは私にとってはうまくいきました:

value.write(qs.unescape(qs.stringify(req.body)));
于 2014-12-15T08:49:03.990 に答える