如何修复“ TypeError:Router.use()需要中间件功能”?

时间:2019-04-25 14:15:05

标签: javascript node.js csrf-protection

我正在关注有关购物车的教程。它的始于2016年。由于它给我的错误,我无法在Index.js中运行CSRF保护

var express = require('express');
var router = express.Router();
var Product = require('../models/product');
var csrf = require('csurf');
router.use(csrfProtection);
var csrfProtection = csrf();

/* GET home page. */
router.get('/', function(req, res, next) {
...
.
.
...
});
router.get('/user/signup',function(req, res, next){
  res.render('user/signup', {csrfToken: req.csrfToken()});
});

module.exports = router;

C:\Users\Jelson\Desktop\Shoppingcart\shopping-cart\node_modules\express\lib\router\index.js:451
    throw new TypeError('Router.use() requires a middleware function')
    ^

TypeError: Router.use() requires a middleware function
    at Function.use (C:\Users\Jelson\Desktop\Shoppingcart\shopping-cart\node_modules\express\lib\router\index.js:451:11)
    at Object.<anonymous> (C:\Users\Jelson\Desktop\Shoppingcart\shopping-cart\routes\index.js:5:8)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
    at startup (internal/bootstrap/node.js:282:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)

0 个答案:

没有答案