ReferenceError:导出函数时未定义req

Posted

技术标签:

【中文标题】ReferenceError:导出函数时未定义req【英文标题】:ReferenceError: req is not defined when I export my function 【发布时间】:2021-10-09 00:36:46 【问题描述】:

我正在使用 react js node js(express, JWK) 构建一个登录应用程序,但是当我导出我的函数时遇到问题我收到错误 ReferenceError: req is not defined 但我如何定义 req???

这个user.router.js:

const  verifyToken  = require("../middleware/authJwt");
const controller = require("../controllers/user.controller");

module.exports = function(app) 
  app.use(function(req, res, next) 
    res.header(
      "Access-Control-Allow-Headers",
      "x-access-token, Origin, Content-Type, Accept"
    );
    next(req);
  );

  app.get(
    "/api/test/user",
    [verifyToken],
    (controller.userBoard)
  );

;

这是 authJwt.js:

const jwt = require("jsonwebtoken");
const config = require("../config/auth.config.js");

verifyToken = (req, res, next) => 
  let token = req.headers["x-access-token"];

  if (!token) 
    return res.status(403).send(
      message: "Sem Token"
    );
  

  jwt.verify(token, config.secret, (err, decoded) => 
    if (err) 
      return res.status(401).send(
        message: "Sem autorização!"
      );
    
    req.userId = decoded.id;
    next();
  );
;


module.exports = verifyToken();

【问题讨论】:

仔细观察:您要导出什么?你没有导出verifyToken 这能回答你的问题吗? What is the difference between a function call and function reference? 【参考方案1】:

您没有在authJwt.js 中导出verifyToken。您正在导出对此函数的调用作为默认值。

改变

module.exports = verifyToken();

module.exports =  verifyToken ;

这样您就可以简单地导出参考。

【讨论】:

以上是关于ReferenceError:导出函数时未定义req的主要内容,如果未能解决你的问题,请参考以下文章

ReferenceError:使用 performance.now() 时未定义性能

ReferenceError:使用 PrimeNG GMap 时未定义 google

ReferenceError:尝试放置让公会时未定义消息

ReferenceError: self 在设置 Firebase 时未定义

ReferenceError:在 datagrid.js 中嵌入燃料时未定义定义

ReferenceError:从“apollo-boost”导入 ApolloClient 时未定义要求