【问题标题】:How to separate CRUD routes on Node.js and Express?如何在 Node.js 和 Express 上分离 CRUD 路由?
【发布时间】:2021-09-29 00:50:16
【问题描述】:

当您想将模型的所有 CRUD 操作放在一个文件中时,可以使用我们的第一种方法:

routes.js

const express = require("express");
const users = require("../routes/users");

module.exports = function (app) {
    app.use(express.json());
    app.use("/api/user", users);
};

users.js

router.patch("/", auth, async (req, res) => {
    // create and update operations ...
})

router.delete("/:id", auth, async (req, res) => {
    // delete operations ...
})
module.exports = router



但是,如果我们想以这种形式为 CRUD 提供单独的文件作为第二种方法怎么办?
用户
|__patchUser.js
|__deleteUser.js
|__index.js

我希望索引文件类似于:
index.js

const express = require("express");
const router = express.Router();
module.exports = router;

其他类似这样的分隔文件:
patchUser.js

const router = require("./index");

router.patch("/", auth, async (req, res) => {

})

但这不起作用。

如何纠正第二种方法有分离的CRUD路由文件?

【问题讨论】:

  • 你会有 multiple module.exports。 module.exports func1 = .... | module.exports func2 = ...

标签: javascript express routes ecmascript-5


【解决方案1】:

您应该遵循此架构。 在 index.js 文件中,您应该只调用路由。比如,userRoutes、productRoutes。

index.js

 const express = require('express');
 const userRoutes = require('./routes/user);
    
 const app = express();
 app.use('/api/user',userRoutes);

routes文件夹
user.js

const router = require('express')().Router;
const patchUser = require('./controllers/user/PatchUser');
const deleteUser = require('./controllers/user/DeleteUser');
const auth = require('./middleware/auth);
//keep middlewares in middleware files

router.patch('/',auth,patchUser);
router.delete('/:id',auth,deleteUser);

module.exports = router;

controllers文件夹
user文件夹

PatchUser.js

const patchUser = async(req,res,next)=>{
//todo
}

module.exports = patchUser;

删除用户.js

const deleteUser = async(req,res,next)=>{
//todo
}
module.exports = deleteUser;

为方便起见,您应该按照以下步骤操作:

  1. 在控制器/用户/中创建 PatchUser.js 文件。
  2. 在路由中创建 userRoutes.js 文件。
  3. 修改 index.js 文件。
  4. 在控制器/用户/中创建 DeleteUser.js 文件。
  5. 修改 userRoutes.js 文件
  6. 修改 index.js 文件

一开始你可能会觉得这很困难,但随着时间和练习你会发现它很容易,这是清洁架构的第一步。

我希望你也在寻找同样的东西。

【讨论】:

    猜你喜欢
    • 2014-07-18
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    • 2015-01-30
    • 2019-09-02
    相关资源
    最近更新 更多