【问题标题】:Body-parser to avoid "JSON.parse(body)"避免“JSON.parse(body)”的正文解析器
【发布时间】:2018-09-19 21:30:33
【问题描述】:

在 express 中,我可以使用一个名为“body-parser”的中间件来自动解析传入的正文。

现在我没有一个快速路由器来应用中间件,是否有可能以某种方式将它应用到我的 chai 测试文件中的所有请求?这样我就可以实现DRY原则了。

我目前在每个测试中都使用它:

it('login', done => {
    request.post('http://localhost:3000', (err, res, body) => {
        JSON.parse(body) // <-- I have to parse the body each time
        done();
    })
});

【问题讨论】:

  • @YvetteColomb 我可以标记其他 cmets 愚蠢吗?我的意思是,他将我的问题标记为另一个明显与我不同的问题的副本。你是在建议我为此举报他吗?
  • 如果您认为某条评论不合理,在这种情况下,一条评论说它是一个问题的骗子,它没有举起旗帜并说出来。不要说我认为评论“愚蠢”,要专业。同样,您可以发表评论说“我不认为这是重复的,因为 bla bla” 让 cmets 保持专业。我同意,这不是那个问题的欺骗。我不喜欢你说的。感谢您的回复。

标签: javascript express middleware chai


【解决方案1】:

我假设您使用的是 Request 库。如果我正确理解您的问题,您希望request 通过JSON.parse 自动解析您的响应正文。

文档在https://github.com/request/request#requestoptions-callback下解释了如何做到这一点

json - 将body 设置为值的JSON 表示并添加Content-type: application/json 标头。此外,将响应正文解析为 JSON。

所以你的代码应该是这样的:

request.post({url: 'http://localhost:3000', json: true}, (err, res, body) => {
    console.log(res)
    console.log(body)
})

未经测试,但这是我从阅读文档中收集到的。

【讨论】:

    猜你喜欢
    • 2017-09-24
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 2015-12-15
    • 2011-11-06
    • 1970-01-01
    相关资源
    最近更新 更多