【问题标题】:Node8/Expresss 4 How to get the value of a specific response header property?Node/Express 4 如何获取特定响应头属性的值?
【发布时间】:2018-05-21 06:21:49
【问题描述】:

我目前可以访问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' : ''}`
  )
}

【问题讨论】:

标签: node.js express json-server


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    相关资源
    最近更新 更多