尝试将快速 API 代码移动到控制器文件

Trying to move express API code to controller file

我在这里遗漏了一些明显的东西。

在我的 routes/api 文件中工作正常(我从 mongodb 获得了预期的用户)

const User = require("../../database/models/User");
router.get("/getUsers", async(req, res) => {
  try {
   const users = await User.find();
   res.status(200).json(users)
} catch (error) {
    res.status(404).json({ message: error.message });
}

我正在尝试将此代码移动到控制器文件中。

const getUsers  = require ('./../../controllers/users_controller');
router.get("/getUsers", getUsers);

我将控制器文件导入 routes/api

const User = require('../database/models/User');
module.exports = () => {
  getUsers = async(req, res) => {

    try {
      console.log ("getting users");
      const users = await User.find();
              
     // res.status(200).json(users);
     console.log("users:", users);
     res.status(200).json(users)
  } catch (error) {
      res.status(404).json({ message: error.message });
  }

  }

当我调出与第一个示例相同的端点时,我在 PostMan 中收到错误读取 ECONNRESET。任何帮助将不胜感激。

在控制器中像这样尝试

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

  const getUsers = async(req, res ,next) => {
    try {
      console.log ("getting users");
      const users = await User.find();
              
     // res.status(200).json(users);
     console.log("users:", users);
     res.status(200).json(users)
  } catch (error) {
      res.status(404).json({ message: error.message });
  }
  }

  exports.getUsers = getUsers;

在路由文件中

const usersController  = require ('./../../controllers/users_controller');
router.get("/getUsers", usersController.getUsers);

如果控制器中有多个函数:

const User = require('../database/models/User');
 const getUsers = async(req, res ,next) => {
  //do somethings
  }
 const getUserById = async(req, res ,next) => {
  //do somethings
  }
  exports.getUsers = getUsers;
  exports.getUserById = getUserById;

在路由文件中

const usersController  = require ('./../../controllers/users_controller');
router.get("/getUsers", usersController.getUsers);
router.get("/getUsers/:id", usersController.getUserById);