1

我目前可以访问由 json-server 设置的响应头属性“X-Total-Count”,但我看不到如何获取该值...

在 chrome-web-tools 中,表示为

响应标头

HTTP/1.1 304 Not Modified
X-Powered-By: Express
X-Total-Count: 14
Access-Control-Expose-Headers: X-Total-Count, Link
Link: <http://localhost:8080/api/users?_sort=lastName%7Casc&_page=1&_limit=5>; rel="first", <http://localhost:8080/api/users?_sort=lastName%7Casc&_page=2&_limit=5>; rel="next", <http://localhost:8080/api/users?_sort=lastName%7Casc&_page=3&_limit=5>; rel="last"
X-Content-Type-Options: nosniff
ETag: W/"4a2-UH/ZrGuCnz4JcDB1ZNEu7sRXZro"
Date: Thu, 07 Dec 2017 07:42:32 GMT
Connection: keep-alive

我可以在我的 server.js 中访问它:

apiRouter.render = (req, res) => {
  console.log('RES HEADERS: ', res.getHeaders()) 
  console.log('RES TOTAL: ', res.getHeader('X-Total-Count'))
  console.log('RES LINK: ', res.getHeader('Link')) 
  ....

并获取日志显示:

RES HEADERS:  { 'x-powered-by': 'Express',
  'x-total-count':
   { [Number: 14]
     __wrapped__: { shoppinglists: [Array], users: [Array] },
     __actions__: [ [Object], [Object], [Object] ],
     __chain__: true,
     __index__: 0,
     __values__: undefined },
  'access-control-expose-headers': 'X-Total-Count, Link',
  link: '<http://localhost:8080/api/users?_sort=lastName%7Casc&_page=1&_limit=5>; rel="first", <http://localhost:8080/api/users?_sort=lastName%7Casc&_page=2&_limit=5>; rel="next", <http://localhost:8080/api/users?_sort=lastName%7Casc&_page=3&_limit=5>; rel="last"' }


RES TOTAL:  { [Number: 14]
  __wrapped__:
   { shoppinglists:
      [ [Object],
        ...
        [Object] ],
     users:
      [ [Object],
        ...
        [Object] ] },
  __actions__:
   [ { func: [Function: get], args: [Object], thisArg: [Object] },
     { func: [Function: orderBy], args: [Object], thisArg: [Object] },
     { func: [Function: size], args: {}, thisArg: [Object] } ],
  __chain__: true,
  __index__: 0,
  __values__: undefined }

但是我怎样才能获得价值?: 14....

感谢您的反馈

在 json-server 中,此响应头属性设置如下:

// Slice result
if (_end || _limit || _page) {
  res.setHeader('X-Total-Count', chain.size())
  res.setHeader(
    'Access-Control-Expose-Headers',
    `X-Total-Count${_page ? ', Link' : ''}`
  )
}
4

1 回答 1

1

res.getHeader('X-Total-Count') 是一个功能......所以需要写:

     const total = res.getHeader('X-Total-Count')
     console.log('TOTAL: ', total). // => displaying 14
于 2017-12-07T10:04:46.183 回答