当您希望将模型的所有 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路由文件分开?
您应该遵循这个架构。 在index.js文件中你应该只调用路由。例如,userRoutes、productRoutes。
index.js
const express = require('express');
const userRoutes = require('./routes/user);
const app = express();
app.use('/api/user',userRoutes);
在路线文件夹中
用户.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;
在控制器文件夹中
用户文件夹
补丁用户.js
const patchUser = async(req,res,next)=>{
//todo
}
module.exports = patchUser;
删除User.js
const deleteUser = async(req,res,next)=>{
//todo
}
module.exports = deleteUser;
为了简单起见,您应该按照以下步骤操作:
一开始,你可能会发现这很困难,但随着时间和练习,你会发现它非常容易,这是干净架构的第一步。
我希望你也在寻找同样的东西。
如果想要在 Node js 中简单地处理 json 此链接:https://github.com/ismailsamudra/expert-json