0

我有一个小的 Node.js webapp,它应该通过套接字广播发布消息。这里的主要问题是,帖子的 req.body 部分是 Object 类型。通过 toString() 函数转换只转换类型名,所以你只看到“对象”:

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

con 是一个 dict.js 字典。非常好,顺便说一句。套接字位于 con dict 的 value-part 中。

这里是邮政编码:

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)总是返回“object”(虽然它可能应该这样做,当我设置router.use(bodyParser.text())):

typeof(req.body)
"object"

我还可以看到 req.body 对象中的信息是正确的。

所以我的问题是:如何将 req.body 获取为具有正确信息的字符串类型?

4

2 回答 2

1

我用查询字符串模块解决了它!

var qs = require('querystring');

stringify 和 unescape 方法对我有用:

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

我认为您需要 JSON 表示。为此,您可以这样做:JSON.stringify(req.body);

于 2014-12-11T15:31:47.163 回答