【问题标题】:How to get express's json response in promise catcher?如何在承诺捕手中获得快递的 json 响应?
【发布时间】:2018-04-12 09:51:15
【问题描述】:

我有这个快速路由器。

app.get('/is-unique-email', function(req, res){

   // if email address is unique 
   if(unique){
       res.json({ unique: true })
       return
   } 

   // else return 403 with error message 
   res.status(403).json({
          email: 'Email already taken.'
   })
})

那么上面的json怎么搭配axios使用呢?

    axios.get('/is-unique-email', { email })
        .then(result => {
            console.log(result)
        })
        .catch(err => {
            console.log(err)
        })

正常的200响应没问题,我可以得到这样的响应数据:

{data: { unique: true }, status: 200, ... }

但是 403 响应,我得到了这个响应:

Error: Request failed with status code 403
    at createError (createError.js:16)
    at settle (settle.js:18)
    at XMLHttpRequest.handleLoad (xhr.js:77)

我真正想要的是

{ status: 403, error : error, email: 'email already taken' }

如何获得 JSON 格式的 403 响应?我是新手开发人员,正在构建 json api 服务器。

【问题讨论】:

    标签: node.js express promise axios


    【解决方案1】:

    响应数据存储在err.response

    所以你会这样做:

    axios.get('/is-unique-email', { email })
            .then(result => {
                console.log(result)
            })
            .catch(err => {
                console.log(err.response)
            })
    

    【讨论】:

      猜你喜欢
      • 2019-02-22
      • 1970-01-01
      • 2021-07-23
      • 1970-01-01
      • 2019-05-27
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多