node.js - 试图将快速 API 代码移动到控制器文件
问题描述
我在这里遗漏了一些明显的东西。
在我的路由/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);
推荐阅读
- algorithm - 在不相交的集合数据结构中迭代类
- reactjs - 如何在createContext中为TypeScript初始化useState的set函数?
- c# - 如何从由json解析的数据绑定列表框的选定项目中获取值到各种文本框中
- c# - Azure AD Multi Tenant ,.Net Core Web API with MSAL(Microsoft Authentication Libary)
- oracle - 使用 Dapper 1.50 和 Oracle 18 对 Id 列表进行子查询
- powershell - Powershell 中的循环
- vue.js - vue jest spyOn 在计算观察者方法调用时不起作用
- mingw - 所有可用 MinGW 包的列表
- javascript - 从javascript中的其他对象递归地创建一个嵌套对象
- css - CSS flex:截断容器中的文本,总是跟在下一个项目之后