路由器回调范围内的“未解析的函数或方法csrfToken()”

时间:2019-04-27 16:09:09

标签: node.js express webstorm csrf-token

我在WebStorm IDE上的express / node.js应用程序中使用CSRF middleware

中间件将方法csrfToken添加到请求对象(即req.csrfToken()),该对象返回令牌字符串。

当我在属于主路由的回调函数范围内调用方法时(恰好如examples所示),一切正常:

import express from "express";
import cookieParser from "cookie-parser";
import csrf from "csurf";
const app = express();
app.use(cookieParser()); 
const csrfProtection = csrf({cookie: true});
.
.
.
app.use(csrfProtection);
app.get('/getCsrfToken',csrfProtection,function(req,res){
    res.json(req.csrfToken());
});

但是,当在属于子路由(位于不同文件中)的回调函数的范围内调用相同的方法时,会出现警告"Unresolved function or method csrfToken()"

import express from "express";
import csrf from "csurf";
const router = new express.Router();
router.use(csrfProtection);
const csrfProtection = csrf({cookie: true});  // cookieParser is already called in the main route as a middleware
router.use(csrfProtection);
router.get("/getCsrfToken",csrfProtection,function(req,res){
    res.json(req.csrfToken());
});
.
.
.
module.exports = router

在类似的问题之后,我发现它可能与Settings -> Languages & Frameworks -> JavaScript -> Libraries中配置的类型有关。我下载了以下库:Node.js Core,csurf,express和cookie-parser-它们都不能解决警告。

警告不会中断该功能,但是最好摆脱该警告并了解其发生的原因-我将不胜感激。

谢谢!

0 个答案:

没有答案