如何为express server (nodejs)编写动态路由



我写过crud routes

const express = require('express')
const bodyParser = require('body-parser')
const app = express()
const db = require('./user_crud_queries')
const port = 3000
app.use(bodyParser.json())
app.use(
bodyParser.urlencoded({
extended: true,
})
)
app.get('/', (request, response) => {
response.json({
info: 'Node.js, Express, and Postgres API'
})
})
app.get('/users', db.getUsers)
app.get('/users/:id', db.getUserById)
app.post('/users', db.createUser)
app.put('/users/:id', db.updateUser)
app.delete('/users/:id', db.deleteUser)
app.listen(port, () => {
console.log(`App running on port ${port}.`)
})

如果我有100个表,我必须包括100个文件吗?它可以基于调用动态导入吗?我确实创建了通用的crud,但我不想给客户,因为他们希望它是详细的。100个表意味着每个表有100个单独的文件。如果服务器包含所有100个表,内存是否足够?

你可以创建一个名为users.routes.js/ts的文件,并像这样包含所有的内容:

import { Router } from "express";
router
.route("/users")
.get(db.getUsers)
.post(db.createUser)
router
.route("/users/:id")
.get('/users/:id', db.getUserById)
.delete('/users/:id', db.deleteUser)


export default router;

,然后在app.js/ts中你可以这样使用它:

import userRouter from "./routes/user.routes";
app.use("/api", userRouter);
所以现在你可以使用以下端点:

/api/users或/api.users/:id

但是,如果有100个表,您将不得不使用100个不同的文件来进行所有的CRUD操作,只有这样才能使代码易于阅读。此外,您可以为相同的作业使用不同的微服务,并减少单个服务器处理的表。

最新更新