【问题标题】:Why VSCode shows ReferenceError: router is not defined?为什么 VSCode 显示 ReferenceError: router is not defined?
【发布时间】:2020-12-05 11:41:01
【问题描述】:

我的用户路由器文件

const express = require('express');
const { protect, authorize } = require('../middleware/auth');

const {
  createUser,
  getallUsers,
} = require('../controllers/users');

const User = require('../models/User');

const router = express.Router({ mergeParams: true });

router.route('/')
  . get(authorize('admin').getallUsers)
  . post(createUser);

module.exports = router;

方法 getallUsers

exports.getallUsers = asyncHandler(async (req, res, next) => {
  const all = await User.find();

  if (!User) {
    return next(
      new ErrorResponse('Something got wrong with users collection', 500),
    );
  }

  res.status(200).json({ success: true, data: all });
});

在我添加 getallUSers 之前工作正常。现在终端显示

/home/milenko/blog_mongo/backend/node_modules/express/lib/router/route.js:202
        throw new Error(msg);
        ^

Error: Route.get() requires a callback function but got a [object Undefined]

VSCode 展示

router.route('/')
^

ReferenceError: router is not defined
at Object.<anonymous> (/home/milenko/blog_mongo/backend/routes/tempCodeRunnerFile.js:1:1)

它是怎么来的?我在第 13 行 router.route 设置了一个断点。

【问题讨论】:

    标签: node.js debugging visual-studio-code


    【解决方案1】:

    get 方法内部用逗号而不是点号分隔 authorize('admin') 和 getallUsers。

    【讨论】:

      猜你喜欢
      • 2018-01-13
      • 2019-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多