Node8 / Expresss 4如何获取特定响应头属性的值?

时间:2017-12-07 07:47:55

标签: node.js express json-server

我目前可以访问响应标头属性' X-Total-Count'由json-server设置,但我不知道如何获得价值...

在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' : ''}`
  )
}

1 个答案:

答案 0 :(得分:1)

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

     const total = res.getHeader('X-Total-Count')
     console.log('TOTAL: ', total). // => displaying 14