【问题标题】:how to check for header value using axios如何使用 axios 检查标头值
【发布时间】:2026-02-13 18:10:01
【问题描述】:

我正在进行一个 get 调用,它将根据 req 标头返回不同的值。就像一个if else。标题有我正在寻找的变量,但我的代码无法识别它。我是新来的。请帮忙。

exports.getSession = async (req, res, next) => {
    try {
        if (req.headers.authToken) {
            let authtoken = req.headers('authToken');
            let response = await sessionManager.getSession(authToken);
            res.status(200).json(response.data);
        } else if (req.headers.api_key) {.
            let vegatoken = reqheaders('api_key');
            res.status(200).json(vegatoken);
        }

【问题讨论】:

  • 欢迎来到 SO,您的控制台是否出现错误?如果是,您可以在您的问题中添加它吗?
  • @vert3x 没有错误消息只是一个警告:(node:32480) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers 已弃用
  • 你可以试试 req.getHeader('authToken');

标签: node.js express axios


【解决方案1】:

从外观上看,getSession 是一个快速中间件。您可以使用 req.get(..)/req.header(..) 访问 express req-object 上的标头,如文档 http://expressjs.com/en/api.html#req.get 中所述

因此您可以执行以下操作:

exports.getSession = async (req, res, next) => {
    try {
        const authTokenHeader = req.header('authToken');
        const apiKeyHeader = req.header('api_key');
        if (authTokenHeader) {
            let response = await sessionManager.getSession(authTokenHeader);
            res.status(200).json(response.data);
        } else if (apiKeyHeader) {
            res.status(200).json(apiKeyHeader);
        }
    } catch(...) { ... }
}

【讨论】:

  • 我可以在放置调试点时看到标头值,但它不会将值与 const authTokenHeader 相关联,并且 req.header('authToken') 显示未定义,但我可以在 req 中看到它。标题
  • console.log(req.headers) 并在此处发布输出
  • 由于某种原因,当我在调试模式下运行它时它没有继续,并且没有生成 console.logs 但在正常运行中传递,我得到了值。谢谢您的帮助。真的很感激。